programmera.net -> vi -> normal     för utskrift      info@programmera.net

Grunderna i vi

1. Tillstånd i vi
2. Nummer + kommando-struktur
3. Studiestrategi

1. Tillstånd i vi

En grundläggande egenskap är att man i vi hoppar mellan olika tillstånd. De 3 vanligase tillstånden är:

  •  Kommandoläget  (Command mode): I detta läge har alla tangenter speciell betydelse. Om du t.ex. trycker på "e" kommer inte ett "e" skrivas till filen du editerar, utan markören kommer att flyttas till slutet av ordet markören står på. Genom att trycka på olika tangenter kan du flytta runt markören i filen, söka efter ord, ta bort text eller kopierar in text. Kommandoläget är ursprungsläget i vi, när du startar vi befinner du dig i detta tillstånd. För att komma till kommandoläget från ett annat läge trycker du bara Esc.
  •  Inmatningsläget  (Insert mode): För att kunna lägga till egen text i en textfil måste du komma ur kommandoläget och in i inmatningsläget. Väl i inmatningsläget fungerar alla bokstäver som i en vanlig editor, d.v.s. om du trycker på "e" skrivs ett "e" i filen. Du kommer till inmatningsläget genom att t.ex. skriva a,A,i,I,o,O,c,C i kommandoläget.
  •  Ersättningsläget  (Replace mode): I detta läge ersätter varje tecken du skriver ett tecken i filen. Du kommer till ersättningsläget genom att skriva R i kommandoläget.
  •  Visuellt läget  (Visual mode): Detta läge är finns bara för Vim. Du kommer till visuellt läge genom att skriva v i kommandoläget. När du nu flyttar markören så kommer all text mellan den plats där du trädde in i visuellt läge och markörens nuvarande position markeras med en grå färg. Detta fält kan du radera, kopiera eller förändra med knapparna d, y, c.

2. Nummer + kommando-struktur

En allmän regel som alltid gäller är att om du skriver ett tal innan du utför ett kommando så kommer kommandot upprepas "talet" gånger.

  • Ex: Skriv: "1 4 e" när du är i kommandoläget. Kommandot "e" flyttar markören till slutet av nästa ord. "1" och "4" tolkas som "14". Resultatet blir att markören flyttas 14 ord framåt och placerar sig på slutet av det sista ordet.
  • Ex: Skriv: "3 d d" när du är i kommandoläget. Kommandot "dd" raderar den raden som markören står på. "3" innebär att tre rader kommer att raderas.

3. Studiestrategi

För att lära sig vi behöver man en strategi. Att försöka memorera alla kommandon man kan utföra i kommandoläget tar tid. Mitt tips är att börja med att lära dig ett litet urval av alla kommandon. Dessa 17 kommandon är i mitt tycke det absolut minsta antal kommandon man måste behärska för att över huvud taget kunna använda vi:

Kommando Betydelse Beskrivning
Esc  -  Ta dig till kommandoläget (en förutsättning för alla kommandon).
.  -  Upprepa senaste kommando.
u  undo  Ångrar en förändring.
h  -  Flytta markören ett steg vänster.
j  -  Flytta markören ett steg ned.
k  -  Flytta markören ett steg upp.
l  -  Flytta markören ett steg höger.
i  input  Placera markören före tecknet (och gå till inmatningsläge).
a  append  Placera markören efter tecknet (och gå till inmatningsläge).
x  -  Radera tecknet under markören.
dd  delete  Radera hela raden.
yy  yank  Kopiera hela raden.
p  paste  Klistra in texten i defaultregistret efter markören.
/foo  -  Sök framåt i filen efter texten foo.
n  next  Upprepa föregående sökning.
:x  exit  Spara filen och avsluta vi.
:q!  QUIT!  Avsluta vi utan att spara filen.

När du kan dessa kan du gå vidare och memorera fler. Till exempel kommer du att märka att när du vill lägga till en ny rad under den rad där markören är går det mycket snabbare att skriva "o" (open) än att:

  1. Förflytta dig till radens slut.
  2. Skriva "a"
  3. Trycka return (för att få en ny rad).