====== Sitemap ====== This is a sitemap over all available pages ordered by [[doku>namespaces|namespaces]].
Page Actions
Wiki Actions
User Actions
====== En liten gjennomgang av VIM tastaturbruk ====== **Håper denne lille gjennomgangen av tastatur kommandoer for vim kan være til nytte, slik av flere innser at editorer som pico og nano er temmelig svake på "feature" fronten i forhold til de mer "voksne" editorene joe, jed, vim og emacs.** Det mest forrvirrende for en nybegynner med vim (eller vi) er nok at du ikke bare kan sette igang og skrive når du har åpnet en fil, slik du kan med de fleste andre editorer. Dette er fordi vim opererer med to forskjellige "moduser", command-mode og insert-mode (pluss et par til <wink>). For å kunne begynne å skrive noe i vim må du først trykke "i" for å gå til insert mode, og når du er ferdig med å skrive, eller vil gjøre endringer i fila med noen kommandoer, så må du ut av insert mode ved å trykke <ESC>. Og i tillegg er det forskjell på kommandoene når du står i command-mode, noen skal begynne med kolon, andre ikke. Dette kan virke tungvindt for en nybegynner. Men det er nettop dette som er en av mange styrker med vim. Ikke det at du må inn og ut av moduser hele tiden, men de forskjellige modusene gir deg vanvittig enkelt tilgang til en stor mengde funksjoner i programmet, uten at du må trykke masse <CTRL> og <ALT> kombinasjoner for å få tilgang til dem. Tenk om du skal erstatte ord syv på linje 120 i en fil. Med pico og nano må du lete deg frem til ordet, slette ordet, og skrive inn det n ye. Masse bruk av piltaster, og leting i fila. I joe ser du på statuslinja hvilken linje du er, og kan taste noen kominasjoner med ^K for flytte deg seks ord bort, for så å slette ordet og skrive inn det nye. Fortsatt masse piltaster, og i tilleg masse kontroll taster atpå. I vi/vim kan du gå direkte til linjen, seks ord bort, slette det syvende og taste rett inn det du vil skal stå med en kjapp tastekombinasjon: 120G6wdwi For å oppsummere en kort redigerings-sesjon med vim. Vi skal åpne en fil, skrive inn litt tekst helt i starten av fila, lagre fila, og så avlutte vim (obs, vi trykker bare enter når det står <ENTER>): <code> shell> vim filnavn<ENTER> i Og så skriver vi inn den teksten vi vil ha i fila <ESC> :w<ENTER> :q<ENTER> shell> </code> For å navigere rundt i fila mens den er åpen kan vi bruke piltastene på vanlig måte, eller hvis vi ønsker å bruke vi-style taster, bruker vi h, j, k og l for å flytte markøren når vi står i command-mode. Vel, over til "cut-the-crap" metoden. Det jeg lister opp under er kun et lite utsnitt av alle de tastene man kan benytte i vim. Jeg har prøvd å legge listen opp med hva man har bruk for når man benytter vim til effektiv skriving av for eksempel programkode, uten å gå inn på de avanserte funksjonene. Dersom man kun ønsker å benytte editoren sin på en enkel måte, så skulle den første seksjonen rekke. VIM kommandoer man får bruk for til daglig. <code> :e filenavn åpne filen <filnavn> i insert modus, sett inn tekst før markøren A insert modus, legg tekst på slutten av linjen <ESC> gå ut av insert modus yy kopier gjeldende linje dd slett (klipp) gjeldende linje v<pil>y visuell markering, kopier tekst til buffer v<pil>x visuall markering, klipp tekst til buffer P lim inn innholdet i buffer før markøren p lim inn innholdet i buffer etter markøren x klipp gjeldende bokstav / søk etter tekst nedover i filen n finn neste nedover :<linjenummer> flytt deg til linjenummer :w lagre fil til disk :q avslutt :wq lagre og avslutt </code> VIM oppsett kommandoer <code> :set ai skru på "autoindent" :set noai skru av "autoindent" :set nocompatible bruk VIM taste oppsett, ikke VI :set compatible bruk VI kompatiblet tataturoppsett :set backspace=2 backspace sletter globalt i insert modus :syntax on vis farge-koding av kildekode. </code> Fil relaterte kommandoer <code> :w lagre fil til disk :w filenavn lagre som <filnavn> :q avslutt :q! avlutt, forkast endringer :e filenavn åpne filen <filnavn> :e! filenavn åpne filen <filname>, forkast endringer i gjeldene fil :<linjenummer> flytt deg til linjenummer :r filenavn sett inn teksten fra <filnavn> ved markør </code> Modus kommandoer <code> i insert modus, sett inn tekst før markøren I insert modus, sett inn tekst ved linjestart a insert modus, sett inn tekst etter markøren A insert modus, legg tekst på slutten av linjen <ESC> gå ut av insert modus R replace modus, overskriv tekst o åpne en ny linje etter denne O åpne en ny linje før denne </code> Redigerings kommandoer (klipp, kopier, lim) <code> r bytt ut gjeldende bokstav x klipp gjeldende bokstav w flytt til neste ord J slå sammen denne linjen med neste (join) p lim inn innholdet i buffer etter markøren P lim inn innholdet i buffer før markøren v<pil> visuell markering v<pil>y visuell markering, kopier tekst til buffer v<pil>x visuall markering, klipp tekst til buffer dd slett (klipp) gjeldende linje yy kopier gjeldende linje yw kopier til neste ord inn i buffer dw klipp til neste ord d$ klipp til slutten av linjen (fungerer med y) d^ klipp til starten av linjen (fungerer med y) 4r erstatt de 4 neste bokstaver med denne 4d<pil> klipp fire bokstaver/linjer i denne retningen 4y<pil> kopier fire bokstaver/linjer i denne retningen </code> Søke kommandoer <code> / søk etter tekst nedover i filen n finn neste nedover N finn neste oppover ? søk etter tekst oppover i filen :1,20s/oldtext/new/g erstatt alle forekomster av "oldtext med "new" på alle linjer fra 1 til 20 <linjenummer>G flytt deg til linjenummer 7<pil> flytt 7 plasser i denne retningen 7w flytt til det syvende neste ord </code> Nyttig å vite De fleste VI/VIM kommandoer kan kombineres med et tall (eg 4r) for å repetere kommandoen mer enn en gang. På samme måte kan de fleste kommandoer kombineres med w for ord, $ for slutt av linje og ^ for start av linje. De fleste kommandoer kan også spesifiseres etter :<linjenummer> for å spesifisere hvilket linjenummer kommandoen skal kjøres på, eventuelt :<fralinje><tilljine> for å spesifisere område (ex: :1d) (ex2: :1,20d) En ting som er greit å huske når man bruker visual mark, er at linjeskift på slutten av en linje er en bokstav, som kopieres hvis den er markert. Dette lærer man fort etter noen feil-kopieringer. Hvis du trykker END for å komme til slutten av en linje kan det være greit å trykke en piltast tilbake, for å slippe å få med linjeskiftet. Ikke akkurat nybegynner <code> d5G slett fra markør til linje nummer 5 y10G kopier fra markør til linje nummer 10 :6d slett linje 6 :6,12 slett alle linjer fra 6 til 12 :g/sometext/s//othertext/ :%s/sometext/othertext/ Globalt søk etter ordet "sometext", erstatt første forekomst av "sometext" på hver linje med "othertext" :g/sometext/s/some/other/ Globalt søk etter ordet "sometext", erstatt første forekomst av "some" på hver linje (inneholdende "sometext") med "other" :g/sometext/s/some/other/g Globalt søk etter order "sometext", erstatt alle forekomster av teksten "some" (på linjer som inneholder "sometext") med "other" (brukes med forsiktighet!) De to siste bør man være forsiktig med. Hvis en linje innholder "this is somenone's sometext that was written some time" vil :g/sometext/s/some/other/ bytte ordet "someone" med "otherone" som kanskje ikke var det man ønsket. Med :g/sometext/s/some/other/g vil man ende opp med linjen: "this is othernone's othertext that was written other time".. </code> Håper denne lille gjennomgangen har vært til nytte, slik at fler kan begynne å bruke den gode editoren VIM er. Husk at hvis du setter deg foran en hvilken som helst POSIX komapibel UNIX maskin, så vil du finne VI som installert standard editor, og da kan det komme godt med å kunne å bruke denne. VIM er VI Improved, og de fleste taster du kan benytte i VIM går i VI. Lykke til med tekst-skrivingen!