12. mars 2007

Nyttige kommandoer i VI

Takk til kollega Mads som lærte meg opp i VI i løpet av én time

Grunnleggende
igå over i insert-modus
esctilbake til operasjonsmodus
:angi kommando
Redigering
dd slette en linje
ostart ny linje (under) og gå i insert-modus
Ostart ny linje (over) og gå i insert-modus
yy står for yank, betyr å kopiere stående linje
y$ kopiere fra markøren til slutten av en linje
pstår for put, betyr å lime inn utklippet linje
10p foreta put ti ganger
13p foreta put tretten ganger
5dd slett fem linjer
15i tegn ESC Sett inn 15 forekomster av "tegn". Kan også skrive en sekvens av repeterende tegn.
uundo, angre siste kommando. Bruker egentlig vim, VI improved, derfor føres historikk over aksjoner.
Jflytt neste linje opp til den som markøren viser (på slutten).
aappend etter markøren
Aappend på slutten av linjen
xslett tegnet som markøren markerer, smart fordi man slipper å gå i insertmodus
Dslett resten av en linje"
Navigasjon
0tilbake til starten av linjen
$til slutten av linjen
^markerer starten av linje
$markerer slutten av linje
wbla til neste ord
cwchange word (tar utgangpsunkt i det ordet som markøren står på)
ekom til slutten av det ordet jeg står inne i
a legg for eksempel til dette ordet
n og N bla fremover og bakover (egentlig neste kommando)
8G Gå til linje 8.
GGå til siste linje
Kommandoer
:w lagre på den filen som VI ble startet med
:w filnavnlagre på annen fil
:q avslutte
:q! avslutte uten å lagre
:x write + quit samtidig
ZZ write + quit samtidig
:r !kommando kjør kommando og få output rett inn i VI. r står for read
:%velg alle linjer
:% !kommando kjør kommando og la output fra kommando erstatte innholdet i filen
:% !sort sorter alle linjene og skriv tilbake til VI. Betyr altså å sortere alt innholdet.
:r !ls limer inn alle filene i stående katalog der hvor :r kjøres
Søke og erstatte tekst
/søk etter ord
/heisøk etter hei
?heisøk etter hei bakover
rErstatt et tegn (replace character)
:g/søkeord/s
//erstatningsord
Erstatter første forekomst på hver linje
:g/søkeord/s
//erstatningsord/g
Erstatter alle forekomster på hver linje
%søk etter en parentes på linjen og matchende parentes
d/søkeord slett alt fra markør til søkeordet
d} slett hele paragrafen, dvs til neste blanke linje. Må være helt blank!
Mer avansert
:map g kommandoer i sekvens si hva tasten g skal gjøre. Enter og ESC fås ved å trykke CTRL+V og så Enter eller ESC
ma Sett et merke som heter a
mb Sett et merke som heter b
'a Går til linjen som merket står på
:'a,'b w filnavn Skriver alle linjer mellom de to merkene til en ny fil!
:set number Viser linjenumre
:set nonumberSlår av visning av linjenumre
:set all Vis alle 'variabler' i VI
:set list Viser spesialtegn i teksten, dvs. tab og linjeskift mm

3 kommentarer:

  1. Du kan lære emacs på en halvtime ;-)

    SvarSlett
  2. Jeg ser at noen fra emacs-kirken har laget en liten tutorial for VI. Verdt å lese :-)

    http://www.dina.dk/~abraham/religion/vi-tutorial.html

    SvarSlett
  3. nano ftw <3

    komodo edit for alt annet :-)

    SvarSlett