Vim, Hovedside

(Forskjell mellom sider)
Gå til: navigasjon, søk
m (Lagt til lenke til vimforeningens wiki)
(Fjernet program windows vår 2010, trenger update)
Linje 1: Linje 1:
Vim er en teksteditor med masse funksjonalitet for å editere tekstfiler raskt og smertefritt. Den vil ikke føles spesielt brukervennlig i begynnelsen, men gir man den en sjanse, vil den gjøre livet litt enklere. Vim ''er'' brukervennlig, bare ikke nybegynnervennlig. Vim står for VI improved, og er en forbedret utgave av tekstredigeringsprogrammet ''vi''. Denne siden beskriver også programmene ''ex'' og ''view''.
+
{| width="100%"
 +
|-
 +
| style="vertical-align:top" |
 +
Dette er termstuenes hjelpesider, der du bl.a. kan finne praktisk info om [[termstue|termstuene]] og datasystemene
 +
på [http://matnat.uio.no MatNat], og om [[:Category:Programvare|programvaren]] som finnes på terminalstuene.  
  
== Oppstart ==
+
Hvis det er noe du lurer på: spør en termvakt eller send en e-post til '''termvakt at ifi.uio.no'''.
Vim kan startes ved å skrive kommandoen,
+
vim
+
i [[kommandolinja]].  
+
  
[[Bilde:Vim.png | Vim i insert modus]]
+
Husk at alle brukere av termstuene må følge både [[stuereglement]]et og [http://www.uio.no/tjenester/it/brukernavn-passord/reglement/ UiO sitt IT-reglement].
  
 +
==Åpningstider==
  
Vim kan også åpnes som eget vindu med hurtigknapper, menyer , etc. Dette vinduet kan lages ved å bruke kommandoen
+
{| {{Prettycentertable}}
gvim
+
|-style="height:4em"
G står da for GUI (Graphical User Interface). Gvim har også den effekten at den
+
| colspan="2" style="width:25%" align="center" | '''[[VB]] (Betjent):'''
returnerer kontrollen til skallet, slik at man kan fortsette å bruke terminalvinduet(kommandolinja) uten å skrive <tt>gvim &</tt>. Ønskes ikke denne effekten, må man bruke opsjonen <tt>-f </tt> (<tt>gvim -f</tt>). Dette ønskes for eksempel ikke når andre programmer kjører Gvim, og venter at den avslutter når du er ferdig med å redigere.
+
| colspan="2" style="width:25%" align="center" | '''[[Abel]] (Betjent):'''
 +
| colspan="2" style="width:25%" align="center" | '''[[Fysikk]] (Betjent):'''
 +
|-
 +
|bgcolor=#EFEFEF align="center" |man-fre: ||bgcolor=#EFEFEF align="center"|  '''08.00-20.30''' ||bgcolor=#EFEFEF align="center" | man-tors: ||bgcolor=#EFEFEF align="center" |  '''08.00-20.30''' ||bgcolor=#EFEFEF align="center" | man-tors: ||bgcolor=#EFEFEF align="center" | '''08.00-20.30'''
 +
|-
 +
|bgcolor=#EFEFEF align="center" | lør: ||bgcolor=#EFEFEF align="center" |  '''10.00-17.30''' ||bgcolor=#EFEFEF align="center" | fre: ||bgcolor=#EFEFEF align="center" | '''08.00-18.30''' ||bgcolor=#EFEFEF align="center" | fre: ||bgcolor=#EFEFEF align="center" | '''08.00-18.30'''
 +
|-
 +
|bgcolor=#EFEFEF align="center" | søn: ||bgcolor=#EFEFEF align="center" |  '''10.00-17.30'''<br/>(med [[kort og kode]]) ||bgcolor=#EFEFEF align="center" | ||bgcolor=#EFEFEF align="center" |  ||bgcolor=#EFEFEF align="center" |  ||bgcolor=#EFEFEF align="center" |     
 +
|-
 +
|}
  
== Avslutte ==
+
Man trenger [[kort og kode]] for å komme inn i bygningene etter 18:00
For å avslutte Vim, samt lagre alle filene kan man bruke tastesekvensen
+
<Esc>:wqa
+
Hvis du vil avslutte programmet uten å lagre endringer, kan man bruke tastesekvensen
+
<Esc>:q!
+
<tt><Esc></tt> kan alltid brukes for å returnere til kommandomodus (mer om det etterpå). Når man
+
er i kommandomodus gir man da kommandoen <tt>:wqa</tt>, som betyr write quit all.
+
  
== Vimtutor ==
+
{| {{Prettycentertable}}
Vimtutor er et program starter vim sin nybegynnerguide. Du kan starte det ved å skrive kommandoen
+
|-style="height:4em"
<Esc>:vimtutor
+
| colspan="2" align="center" | '''[[Inf]] (Ubetjent):'''
Dette er en guide som tar fra en drøy halvtime til noen timer å gå gjennom. Det er en fin øvelse for nye som vil lære seg å bruke vim, men den dekker ikke alt som er mulig.
+
|-
For flere guider, se under "Eksterne lenker" nederst på siden.   
+
|bgcolor=#EFEFEF align="center" | man-fre:||bgcolor=#EFEFEF align="center" | '''07.00-17.00'''<br/>(21.00 med [[kort og kode]])
 +
|-style="height:10px"
 +
|bgcolor=#EFEFEF align="center" |lør:||bgcolor=#EFEFEF align="center" | '''08.00-14.00'''<br/>(21.00 med [[kort og kode]])
 +
|-style="height:10px"
 +
|}
  
== Ulike Modus ==
+
[[Åpningstider i ferier og helligdager]]
Hva gjør Vim forskjellig fra alle andre tekstredigeringsprogram?
+
Vim er bygget ideer fra programmet ''ed'', som fortsatt er standard tekstredigeringsprogram
+
i UNIX. Ed startet opp i en kommandomodus. I kommandomodus kan man gjøre ting som å flytte
+
markøren, lagre filen, åpne en fil. Når man vil skrive tekst inn gir man en egen kommando for
+
å komme inn i en egen modus for dette. Når man vil lagre, må man gå tilbake til kommandomodus.
+
  
=== Kommando-modus ===
 
Når man starter Vim er man i kommandomodus. De forskjellige knappene på tastaturet gjør da noe
 
helt annet enn å putte inn tekst akkurat der markøren befinner seg. Hva de forskjellige knappene
 
egentlig gjør, kan endres, for eksempel i filen .vimrc, men her skal jeg anta at man bruker
 
standardoppsettet. '''Husk:''' Man kan alltid komme til kommandomodus ved å trykke <tt><Esc></tt>.
 
  
=== Insert mode ===
+
==Har du lyst til å bli termvakt?==
I dette moduset kan man legge inn tekst på vanlig måte.
+
Les [[Stillingsutlysning | stillingsutlysningen]] for mer informasjon om hvordan du kan få en trivelig og lærerik deltidsjobb.
For å komme til Insert-mode fra kommandomodus, kan man gi en av følgende kommandoer:
+
  
* i (insert) begynne å skrive inn foran markøren.
 
  
* I (Insert) begynne å skrive inn på begynnelsen av linjen.
 
  
* a (append) begynne å skrive etter markøren.
+
|width="40%" style="vertical-align:top; padding-left: 1em" |
  
* A (Append) legge til tekst på slutten av linjen.
+
<div style="padding: 0em 1em 1em 1em; background-color:#eef">
  
=== Replace mode og Virtual Replace mode ===
+
==Sjekk hvor du er i utskriftskøen==
For å komme til Replace mode, trykker man <tt>R</tt> i kommandomodus. Å skrive i
+
* [http://termvakt.at.ifi.uio.no/lpq.cgi?printer=vb_selvbetjent vb_selvbetjent]
Replace mode virker omtrent på samme måte som å bruke insert-knappen i
+
* [http://termvakt.at.ifi.uio.no/lpq.cgi?printer=vbfarge vbfarge]
for eksempel [[Open_Office | OpenOffice.org]]. Når du skriver inn tegn, overskrives tegnet
+
* [http://termvakt.at.ifi.uio.no/lpq.cgi?printer=ormestad ormestad (fysikk)]
under markøren. Vim har også en Virtual Replace mode. Forandringen ligger
+
i at i Virtual Replace mode, overskrives tegnene som vises på skjermen. Dette
+
innebærer at å trykke på <tt><Tab></tt> overskriver flere tegn, mens det å overskrive
+
ett tabulatortegn innebærer at den blir erstattet med mellomrom før disse
+
mellomrom endres. Linjeskift i Virtual Replace mode vil også erstatte
+
resten av linja med linjeskift, så vær varsom! For å komme til Virtual Replace
+
mode, trykk <tt>gR</tt> i kommandomodus.
+
  
=== Visual mode ===
+
===Populære sider===
Visual mode det samme som å merke teksten i kommandomodus. Merker man teksten med musen, eller trykker <tt>v</tt> før man
+
flytter markøren har ingen betydning. Teksten er merket, og man er i Visual 
+
mode. I Visual mode vil de fleste kommandoer bare gjelde det merkede området.
+
Vi kommer inn på kommandoer senere, men det er dette Visual mode gjør.
+
 
+
=== Visual block mode ===
+
I tillegg til Visual mode, finnes også en Visual Block mode. Den eneste
+
forskjellen mellom disse to er at Visual Block mode vil markere tekst i
+
et rektangulært område, noe som kan være praktisk dersom man lager
+
tabeller eller lignende.
+
 
+
== Kommandoer ==
+
 
+
=== Kolonkommandoer ===
+
I Vim kan alt gjøres med såkalte kolonkommandoer. Disse kjennetegnes ved
+
at kommandoen begynner med kolon. Når man trykker kolon i kommandomodus,
+
kan man skrive inn kommandoen nederst på skjermen. På de aller fleste
+
kommandoer kan man først skrive inn en områdespesifikasjon (Range).
+
Dette kan være et tall, som representerer linjenummeret eller to tall adskilt
+
med komma, som representerer linjene mellom fra a til b.  Istedenfor tall
+
kan disse symbolene også brukes:
+
 
+
* $: Siste linje i bufferet.
+
 
+
* '<: Begynnelsen på området i Visual (Block) Mode.
+
 
+
* '>: Slutten på området i Visual (Block) Mode.
+
 
+
* %: Et alias for <tt>1,$</tt>, altså hele bufferet.
+
 
+
* .: Linja markøren befinner seg på.
+
 
+
* + n eller -n: ''n'' linjer før eller etter den markøren befinner seg på.
+
 
+
Man trenger dog ikke skrive inn en områdespesifikasjon. Hvis man ikke gjør
+
det, gjelder kommandoen som regel linjen markøren befinner seg på. Skriver man inn et heltall
+
før man taster kolon, settes så områdespesifikasjonen til å være de neste <heltall> linjene med linjen
+
under markøren som den første (.,.+<heltall>).
+
 
+
Etter dette kommer spesifikasjonen av kommandoer. De fleste kommandoer
+
har også en kortversjon. En del av kommandoene tar også argumenter. Disse
+
argumentene oppgis på omtrent samme måte som i skallet. Det er to typiske
+
argumenter: <tt>%</tt> representerer det åpne bufferet, mens <tt>#</tt> representerer
+
det siste bufferet man var innom, og <tt>#buffernummer</tt> representerer ''buffernummer''.
+
 
+
=== Noen vanlige kommandoer: ===
+
{|border=1 width=70%
+
|-
+
| w eller write || Skrive filen. Legger man et filnavn som argument, skriver den til denne i stedet.
+
|-
+
| sav eller saveas || Skrive til filnavn gitt som argument, samt bruke denne ved fremtidige <tt>:w</tt>.
+
|-
+
|q eller quit || Lukke vinduet, eller hvis det er siste vindu, avslutte.
+
|-
+
| qa || Lukke alle vinduer og avslutte vim.
+
|-
+
| wqa || Lagre åpne filer og avslutte vim.
+
|-
+
| e eller edit || Åpne en ny fil gitt ved argument.
+
|-
+
| sp eller split || Åpne et nytt vindu. Kan ta et filnavn eller buffer som argument. Istedenfor range, kan den ta et tall som spesifiserer høyden på vinduet.
+
|-
+
| vs eller vsplit || Som split, bare vertikalt.
+
|-
+
| bn eller next || Bytte til neste åpne fil.
+
|-
+
| bp eller bprevious || Bytte til forrige åpne fil.
+
|-
+
| ls || Vise åpne filer.
+
|-
+
| b  eller buffer || Bytte til bufferet gitt ved filnavn eller buffer som argument.
+
|-
+
| s eller substitute || Det ser ut slik: s/regex/streng/. Erstatter regex med streng. Se <tt>:help :s</tt>
+
|-
+
|h eller help || Åpner et nytt hjelpvindu.  Slår opp på argumentet.  Eksempel <tt>:h :w</tt>, <tt>:h CTRL-w</tt>.
+
|}
+
  
Vim har også en del kommandoer bundet til enkelttaster. Der det gir mening kan man trykke inn et tall før
+
* [[FAQ|Ofte stilte spørsmål]]
tasten for å utføre kommandoen flere ganger. Enkelte tastekommandoer er også flere tegn lange, men de er
+
* [[Trådløst|Trådløst oppsett]] for [[bærbar|bærbare maskiner]].
da ofte satt sammen av flere kommandoer.Her kan du finne [http://tnerual.eriogerg.free.fr/vimqrc.pdf hurtigreferanse] til flere kommandoer.
+
* [[Utskrift|Hvordan skrive ut]] på MatNat.
 +
* Sjekk din [https://brukerinfo.uio.no utskriftskvote].
 +
* Bytt [https://brukerinfo.uio.no passord].
 +
* Hvordan [[skanne]] dokument.
 +
* Lær deg [[LaTeX]].
  
== Flytte rundt ==
+
</div>
Nå kan man bruke piltastene og annet for å få til slikt, men da må man flytte hånden. Tastene for h, j, k og l
+
<div style="margin-top: 1em; padding: 0em 1em 1em 1em; background-color:#eef">
ligger plassert rett under høyrehånden dersom man har et vanlig tastatur (qwerty). Disse flytter markøren til venstre,
+
===For nye studenter===
ned (huskeregel: J ligner en nedoverpil), opp og til høyre. For å bevege markøren lenger kan man bruke <tt>Ctrl-u</tt> eller <tt>Ctrl-d</tt> for
+
å flytte en halvside opp eller ned.
+
  
Man kan også flytte rundt linjen effektivt. Kommandoen <tt>0</tt> (null) flytter deg til begynnelsen av linjen, og
+
* Følg [[stuereglement]]et.
<tt>$</tt> flytter deg til slutten. Kommandoene <tt>w</tt> og <tt>b</tt> flytter markøren et ord frem eller tilbake. Kommandoen <tt>f</tt> ber deg taste inn
+
* [[Linux-veiledning|Bli kjent i Linux MatNat]].
ett tegn, for så å flytte markøren til neste forekomst av tegnet.
+
* [[Vindusoppsett_i_Linux|Gjør Linux mer personlig]].
 +
* [[Windows-veiledning|Bli kjent i Windows på MatNat]].
 +
* [[Passord|Bytte passord]]
 +
* [[Fjerninnlogging]]
  
Det finnes flere avanserte former for å flytte seg rundt. Dette kan man lese om ved å angi kommandoen <tt>:help motion.txt</tt>.
+
</div>
  
== Flytte tekst ==
 
Å flytte på tekst innebærer to operasjoner: Slette tekst (delete) og lime inn tekst (put).
 
Å slette tekst gjøres med kommandoen <tt>d</tt>. Denne kommandoen trenger mer informasjon for
 
faktisk å kunne gjøre noe. Angir man en av kommandoene for å flytte rundt, slettes teksten
 
mellom der markøren var og der den havnet.
 
Det hendige nå er at teksten ikke er slettet, men den er lagt inn i et register.  Man kan spesifisere
 
hvilket ved å skrive <tt>"</tt> etterfulgt av en bokstav umiddelbart før <tt>d</tt>. Kommandoen <tt>y</tt> virker
 
på samme måte som <tt>d</tt>, bortsett fra at den ikke sletter teksten (y for yank). Kommandoen <tt>c</tt> lar deg
 
også begynne å skrive inn i tillegg til at man sletter tekst (c for change).
 
  
For å lime inn igjen slettet tekst, brukes kommandoen <tt>p</tt> eller <tt>P</tt> avhengig av om teksten skal limes
+
<div style="margin-top: 1em; padding: 0em 1em 1em 1em; background-color:#eef">
inn før eller etter markøren. Igjen kan man spesifisere register før kommandoen.
+
===For studenter som ikke tilhører MatNat===
  
Det finnes også snarveikommandoer for å jobbe med hele linjer:
+
* Informasjon til [[ikke-matnat|ikke MatNat]] studenter
<tt>dd</tt>, <tt>yy</tt> og <tt>cc</tt> vil slette, kopiere eller endre hele linja. Kommandoene <tt>D</tt> og <tt>C</tt> vil dessuten slette resten
+
av linja. Dette er aliaser for <tt>d$</tt> og <tt>c$</tt>. Ønsker du at <tt>Y</tt> skal virke som <tt>D</tt> og <tt>C</tt>, så angir man kommandoen
+
<tt>:map Y y$</tt>, eller legger <tt>map Y y$</tt> (intet kolon) på en egen linje i .vimrc.
+
  
For å lese mer om registre, angi <tt>:help registers</tt>.
+
</div>
  
==Makroer(recording)==
 
En av de meget praktiske tingene med Vim er makroene.  Man kan lagre kommandoer i et register,
 
for senere å kjøre dem. Registrene er de samme som ellers (Merk at gåseøynene man bruker
 
ved <tt>c</tt>, <tt>d</tt> og <tt>y</tt> ikke er en del av registerets navn). Kommandoen <tt>q</tt> etterfulgt av en
 
bokstav begynner å spille inn en makro (Eksempel: <tt>qa</tt>). Alt man nå gjør lagres i dette registeret.
 
For å avslutte innspillingen trykker man <tt>q</tt>. Prøv for eksempel å trykke inn følgende sekvens:
 
<tt>qaI:<Esc>A:<Esc>jq</tt>. For å gjøre nytte av makroen kan man nå gi kommandoen <tt>@ </tt> etterfulgt av en bokstav
 
(For eksempel <tt>@a</tt>. Prøv også <tt>10@a</tt>, som vil gjenta makroen ti ganger).
 
  
==Relevante programmer==
 
===View===
 
Programmene view og gview fungerer på samme måte som henholdsvis vim og gvim, men de åpner filene
 
skrivebeskyttet. Dermed kan programmet brukes som en avansert form for vim.
 
===Ex===
 
Programmet ex starter vim i kolonkommandomodus. Alt man skriver inn tolkes som kolonkommandoer.
 
  
== Verktøy ==
 
Man bør alltid være klar over at selv om Vim er fullt ut programmerbar, så kommer den ikke med alle verktøyene alle trenger.
 
Skal man redigere en type fil, kan man også søke litt rundt på nettet.  Skal man for eksempel redigere [[LaTeX]], så finner man
 
ved et enkelt nettsøk at http://vim-latex.sourceforge.net/ er et bra sted å starte.
 
  
==Se også==
 
* [http://en.wikipedia.org/wiki/Vim_%28text_editor%29 vim på wikipedia]
 
* [http://vim.wiki.ifi.uio.no/Main_Page Vim-forening]
 
  
==Eksterne linker==
 
* [http://www.vim.org/ vim.org] Inneholder mye ressurser.
 
* [http://tnerual.eriogerg.free.fr/vim.html Quickref] Tabell over vanlige kommandoer.
 
* [http://www.linuxconfig.org/Vim_Tutorial Vim Tutorial] Nybegynner guide med videoklipp
 
* [http://www.dc.turkuamk.fi/docs/soft/vim/vim.html Vim referanse] En grei referanse guide
 
* [http://vim.wikia.com/wiki/Vim_Tips_Wiki VimTips] Tips og triks
 
* [http://en.wikibooks.org/wiki/Learning_the_vi_editor/Vim wikibooks]
 
  
  
[[Category:Programvare]]
+
__NOTOC__ __NOEDITSECTION__
[[Category:Linux]]
+
[[Category:Tekstredigering]]
+

Revisjonen fra 12. nov 2010 kl. 11:50

Dette er termstuenes hjelpesider, der du bl.a. kan finne praktisk info om termstuene og datasystemene på MatNat, og om programvaren som finnes på terminalstuene.

Hvis det er noe du lurer på: spør en termvakt eller send en e-post til termvakt at ifi.uio.no.

Husk at alle brukere av termstuene må følge både stuereglementet og UiO sitt IT-reglement.

Åpningstider

VB (Betjent): Abel (Betjent): Fysikk (Betjent):
man-fre: 08.00-20.30 man-tors: 08.00-20.30 man-tors: 08.00-20.30
lør: 10.00-17.30 fre: 08.00-18.30 fre: 08.00-18.30
søn: 10.00-17.30
(med kort og kode)

Man trenger kort og kode for å komme inn i bygningene etter 18:00

Inf (Ubetjent):
man-fre: 07.00-17.00
(21.00 med kort og kode)
lør: 08.00-14.00
(21.00 med kort og kode)

Åpningstider i ferier og på helligdager


Har du lyst til å bli termvakt?

Les stillingsutlysningen for mer informasjon om hvordan du kan få en trivelig og lærerik deltidsjobb.


Sjekk hvor du er i utskriftskøen

Populære sider


For studenter som ikke tilhører MatNat





Personlige verktøy
Navnerom
Varianter
Handlinger
Navigasjon
Kategorier
Programvare
Andre
Translate
Verktøy