Sök…


Anmärkningar

Vim (eller "Vi IMproved") är en konsolbaserad multiläge ( modal ) textredigerare. Det används allmänt och är tillgängligt som standard på alla Unix-, Linux- och Apple OS X-system. Vim har ett stort aktivt community och en bred användarbas. Redaktören stöder alla populära programmeringsspråk, och många plugins är tillgängliga för att utöka dess funktioner.

Utvecklare gillar redaktören för sin hastighet, många konfigurationsalternativ och kraftfulla uttrycksbaserad redigering. I "kommandoläge" styrs redigeraren av tangentbordskommandon, så att användaren inte distraheras av ett GUI eller muspekare.

Vim är baserat på den tidigare Unix "vi" -redigeraren som skapades på sjuttiotalet och den har varit i ständig utveckling sedan 1991. Med makron och plugins erbjuder redaktören de flesta funktionerna i en modern IDE. Det är också unikt kapabelt att bearbeta stora mängder text med sitt skriptspråk (vimscript) och vanliga uttryck.

Huvudämnen:

Vim standardstartmeddelande

versioner

Version Utgivningsdatum
8,0 2016/09/12
7,4 2013/08/10
7,3 2010-08-15
7,2 2008-08-09
7,1 2007-05-12
7,0 2006-05-07
6,0 2001-09-26
5,0 1998/02/19
4,0 1996/05/29
3,0 1994/08/12
2,0 1993/12/14
1,14 1991/11/02

Installation

Vim på din maskin - om det finns en - är mycket troligt en "liten" byggnad som saknar användbara funktioner som klippbordstöd, syntaxbelysning eller till och med möjligheten att använda plugins.

Detta är inte ett problem om allt du behöver är ett snabbt sätt att redigera konfigurationsfiler men du kommer snart att träffa ett antal väggar om du tänker göra Vim till huvudredigeraren.

Det rekommenderas därför generellt att installera en komplett byggnad.

Installation på Linux / BSD

På dessa system är tricket helt enkelt att installera GUI-versionen som kommer med både ett gvim kommando för att starta GUI och ett vim kommando för att starta TUI.

Arch- och Arch-baserade distributioner

$ sudo pacman -R vim
$ sudo pacman -S gvim

Debian- och Debian-baserade distributioner

$ sudo apt-get update
$ sudo apt-get install vim-gtk

Gentoo och Gentoo-baserade distributioner

$ sudo emerge --sync
$ sudo emerge app-editors/gvim

RedHat och RedHat-baserade distributioner

$ sudo yum check-update
$ sudo yum install vim-X11

Fedora

$ sudo dnf check-update
$ sudo dnf install vim-X11

Slackware och Slackware-baserade distributioner

$ sudo slackpkg update
$ sudo slackpkg install-new vim-gvim

OpenBSD och OpenBSD-baserade distributioner

$ sudo pkg_add vim-x11

FreeBSD och FreeBSD-baserade distributioner

$ sudo pkg install editors/vim

Installation på Mac OS X

Strategin liknar Mac OS X: vi installerar GUI-versionen för att få både GUI och TUI. Till slut bör vi kunna:

  • dubbelklicka på MacVim-ikonen i Finder,
  • klicka på MacVim-ikonen i Dock,
  • utfärda $ mvim i skalet för att öppna MacVim GUI,
  • utfärda $ mvim -v i skalet för att öppna MacVim TUI.

Regelbunden installation

Ladda ner och installera en officiell stillbild som du gör med alla andra Mac OS X-program.

Placera mvim skriptet som levereras med MacVim någonstans i din $PATH .

Paketansvarig

MacPorts:
$ sudo port selfupdate
$ sudo port install macvim
homebrew:
$ brew install macvim

För att göra MacVim till standardkonsolen Vim:

$ brew install macvim --with-override-system-vim

Installation på Windows

Det finns ingen Vim på Windows-system som standard. Du kan ladda ner och installera Vim från Tuxproject-webbplatsen för mer uppdaterade och kompletta byggningar eller så kan du ladda ner och installera Vim från den officiella Vim-webbplatsen .

Chocolatey

> choco install vim

Bygga Vim från källan

Om metoderna ovan inte passar dina behov är det fortfarande möjligt att bygga Vim själv, med bara de alternativ du behöver.

Detta ämne kommer att diskuteras i sitt eget avsnitt (för närvarande i utkast).

Avslutande Vim

För att lämna Vim måste du först se till att du är i normalt läge genom att trycka på Esc .

  • :q Enter (förhindrar att du lämnar om du inte har sparade ändringar - förkortar: avsluta)

Så här förkastar du ändringar och lämnar Vim:

  • :q! Ange för att tvinga utgången och kassera ändringar (förkortning :quit! Inte att förväxla med :!q )
  • ZQ är en genväg som gör samma sak som :q! ,
  • :cq Ange sluta och returnera fel (kassera alla ändringar så att kompilatorn inte kommer att kompilera den här filen igen)

För att spara ändringar och avsluta Vim:

  • :wq Enter (kortfattad för :write och :quit ),
  • :x Ange (samma som :wq , men skriver inte om filen inte har ändrats),
  • ZZ är en genväg som gör samma sak som :x (Spara arbetsytan och avsluta redigeraren),
  • :[range]wq! Ange (skriv raderna i [intervall])

För att stänga flera buffertar på en gång (även i flera fönster och / eller flikar), lägg brevet a något av kommandona ovan (de som börjar med : ). För att skriva och avsluta alla fönster kan du till exempel använda:

  • :wqa Ange eller
  • :xa Enter - Skriv alla ändrade buffertar och avsluta Vim. Om det finns buffertar utan filnamn, som är läsbara eller som inte kan skrivas av någon annan anledning, kommer Vim inte att sluta
  • :xa! Ange - Skriv alla ändrade buffertar, även de som är läsbara, och avsluta Vim. Om det finns buffertar utan filnamn eller som inte kan skrivas av någon annan anledning, kommer Vim inte att sluta
  • :qa Enter - försök att avsluta, men sluta om det finns några osparade filer;
  • :qa! Enter - avsluta utan att spara (Kassera förändringar i inte sparats filer)

Om du har öppnat Vim utan att ange en fil och du vill spara den filen innan du lämnar, får du E32: No file name filnamnmeddelande. Du kan spara din fil och avsluta med:

  • :wq filename Ange eller;
  • :x filename Ange

Förklaring:

Den: tangenttryckning faktiskt öppnar kommandoläge. Kommandot q är en förkortning av quit , w , för write och x , för exit (du kan också skriva :quit :write och :exit om du vill). Genvägar som inte börjar med : exempel ZZ och ZQ hänvisar till ZQ för normalt läge. Du kan tänka på dem som genvägar.

Den ! tangenttryckning används ibland i slutet av ett kommando för att tvinga genomförandet, vilket gör det möjligt att kasta ändringar i fallet med :q! . Placera ! i början av kommandot har en annan betydelse. Till exempel kan man skriva fel:! :!q istället för :q! och vim skulle avslutas med ett 127-fel.

Ett enkelt sätt att komma ihåg detta är att tänka på ! som ett sätt att insistera på att verkställa något. Precis som när du skriver: "Jag vill sluta!"

Interaktiva Vim-tutorials (som vimtutor)

vimtutor är en interaktiv handledning som täcker de mest grundläggande aspekterna av textredigering.

På UNIX-liknande system kan du starta självstudien med:

$ vimtutor

I Windows kan "Vim tutor" hittas i katalogen "Vim 7.x" under "Alla program" i Windows-menyn.

Se :help vimtutor för mer information.

Andra interaktiva självstudier inkluderar dessa webbläsarbaserade:

  • Vim Adventures - En interaktiv spelversion av vimtutor tillgänglig på webben. Endast de första nivåerna är gratis.
  • Open Vim - En interaktiv terminal som lär dig de grundläggande kommandona med feedback.
  • Vim Genius - En annan interaktiv terminal som också inkluderar mellanliggande och avancerade lektioner inklusive makron och arglist.

Spara en skrivskyddad fil redigerad i Vim

Ibland kan vi öppna en fil som vi inte har behörighet att skriva i Vim utan att använda sudo .

Använd det här kommandot för att spara en skrivskyddad fil redigerad i Vim.

:w !sudo tee > /dev/null %

Som du kan kartlägga till :w!! i din .vimrc :

cmap w!! w !sudo tee > /dev/null %

Du kommer att få en prompt som visas på bilden.

Tryck på ENTER eller skriv kommando för att fortsätta. [O] K, (L) oad-fil: .

Tryck på O så kommer filen att sparas. Det förblir öppet i vi / vim för mer redigering eller läsning och du kan avsluta normalt genom att skriva :q! eftersom filen fortfarande är öppen som skrivskyddad.

Kommandoförklaring

:w ............................ isn't modifying your file in this case, 
   ............................ but sends the current buffer contents to 
   ............................ a substituted shell command
   !sudo ...................... call the shell 'sudo' command
         tee .................. the output of the vi/vim write command is redirected 
                                using the 'tee' command
             > /dev/null ...... throws away the standard output, since we don't need 
                                to pass it to other commands
                         % .... expands to the path of the current file

källor:

Stäng av vim

När du använder vim från kommandoraden kan du stänga av vim och komma tillbaka till din prompt utan att faktiskt sluta vim . Därför kommer du senare att kunna få tillbaka din vim session från samma prompt.

I normalt läge (om inte, tryck på esc för att komma dit), ge ut någon av dessa kommandon:

:st enter

:sus enter

:stop enter

:suspend enter

Alternativt, på vissa system, i normal eller visuellt läge, kommer att utfärda Ctrl + Z att ha samma effekt.

Obs: Om autowrite är inställt autowrite buffertar med ändringar och filnamn ut. Lägg till en ! innan du går in för att undvika, t.ex. :st! gå in .

Senare, när du vill återgå till din vim session, om du inte har avbrutit några andra jobb, kommer att utfärda följande återställa vim som ditt förgrundsjobb.

fg gå in

Annars måste du hitta ditt vim sessions jobb-ID genom att utfärda jobs ange och sedan förgrunda matchande jobb fg %[job ID] ange t.ex. fg %1 ange .

Grunderna

Kör interaktiva VIM-tutorials så många gånger som behövs för att känna dig bekväm med grunderna.

Vim har flera lägen, t.ex. normalläge , infogningsläge och kommandoradsläge .

Normalt läge är för redigering och navigering av text. I detta läge motsvarar h , j , k och l markörtangenterna , , och . De flesta kommandon i normalt läge kan förinställas med ett "count", t.ex. 3j flyttar ner 3 linjer.

Infoga-läge är för att infoga texten direkt, i det här läget vim liknar andra mer enkla textredigerare. För att gå in i insättningsläge, tryck i i normalt läge. Tryck på <ESC> (flyktangent) för att lämna den.

Kommandoradsläget är för att köra mer komplexa kommandon som att spara filen och avsluta vim. Tryck på : att starta kommandoradsläget. För att lämna detta läge kan du också trycka på <ESC> . För att spara ändringarna i filanvändningen :w (eller :write ). För att avsluta vim utan att spara dina ändringar, använd :q! (eller :quit! ).

Detta är några av de mer användbara kommandona i vim:

Kommando Beskrivning
i (insert) går in i insert-läge före den aktuella markörpositionen
I går in i insättningsläge innan det första utskrivbara tecknet på den aktuella raden
a (bifogas) går in i insättningsläge efter aktuell markörposition
A går in i insättningsläge efter det sista utskrivbara tecknet på den aktuella raden
x radera tecken vid den aktuella markörpositionen
X radera tecken till vänster till den aktuella markörpositionen
w flytta till nästa ord
b flytta till föregående ord
0 gå till början av raden
$ flytta till slutet av raden
r byta - går in i byte-läge för ett tecken. Nästa tecken du skriver ersätter tecknet under markören.
R går in på utbytesläge på obestämd tid. Varje tecken du skriver kommer att ersätta tecknet under markören och flytta markören med en.
s ersättare - raderar tecknet vid den aktuella markörpositionen och går sedan in insertläge
S radera den aktuella raden som markören för närvarande är på och gå in i insättningsläge
<Esc> , <Cc> avsluta insättningsläge och återgår till normalt läge
u ångra
<Cr> göra om
dd , dw , dl , d$ klipp av den aktuella raden, från markören till nästa ord, eller tecknet, aktuell position till slutet av aktuell rad respektive, notera: D är motsvarigheten till d$
cc , cw , cl ändra den aktuella raden, från markören till nästa ord respektive tecknet
yy , yw , yl , y$ yank ("kopiera") den aktuella raden, från markören till nästa ord, eller tecknet, aktuell position till slutet av aktuell rad respektive
p , P sätta ("klistra in") efter respektive före aktuell position
o , O för att skapa en ny tom rad, efter eller före den aktuella raden och gå in i insättningsläge
:w skriv den aktuella bufferten till disken
:q! ZQ sluta utan att skriva
:x :wq , ZZ skriva och sluta
:help öppna ett fönster med hjälpfil
:help {subject} visa hjälp för ett specifikt ämne
qz börja spela in åtgärder för att registrera z , q att avsluta inspelningen, @z att spela upp handlingarna. z kan vara valfri bokstav: q används ofta för att underlätta. Läs mer: Makron

Vad du ska göra i händelse av en krasch

Vim sparar alla dina osparade ändringar i en bytefil , en extra fil som raderas när ändringarna har gjorts genom att spara. Namnet på växlingsfilen är vanligtvis namnet på den fil som redigeras föregående av a . och med ett .swp suffix (du kan se det med :sw ).

Så om din vim-process upphör innan du har haft chansen att spara dina ändringar kan du återställa ditt arbete genom att tillämpa ändringarna i swap-filen på din nuvarande fil med hjälp av kommandorad-alternativet -r . Om till exempel myFile är den fil du redigerade använder du:

$ vi -r myFile

för att återställa de otillåtna förändringarna.

Om det finns en swap-fil bör vim fråga dig återställningsalternativ

$ vi myFile
E325: ATTENTION
Found a swap file by the name ".myFile.swp"
...
Swap file ".myFile.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

Om du väljer (R) ecover tillämpas ändringarna från swp filen men swap-filen raderas inte, så glöm inte att radera swap-filen efteråt om du är nöjd med återställningen.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow