Vim

vim

Vim i "konsol"-läge
Sorts Textredigerare
Utvecklaren Bram Molenar med flera
Skrivet i C- och Vim-skript [1]
Operativ system Amiga , Linux , Mac OS X , Windows , OpenVMS , OS/2 , Unix
Gränssnittsspråk engelska, spanska, italienska, kinesiska, tyska, persiska, polska, ryska, franska, japanska [2]
Första upplagan 2 november 1991 [3]
senaste versionen
Licens GPL -kompatibel Vim-licens , välgörenhetsprogram
Hemsida vim.org
 Mediafiler på Wikimedia Commons

Vim (förkortning av Vi Im proved , uttalas "vim") är en fritextredigerare baserad på det äldre vi . Nu är det en kraftfull textredigerare med fullständig frihet för anpassning och automatisering möjlig genom tillägg och tillägg.

Vims användargränssnitt kan köras i ren text (konsol)-läge .

Det finns också en modifiering för användning i ett grafiskt fönstergränssnitt - GVim. Många användarkommandon i GVim kan anropas via sina respektive menyalternativ.

Den största skillnaden från de "klassiska" textredigerarna

En av huvudfunktionerna i editorn är användningen av två huvudsakliga, manuellt växlande, inmatningslägen: kommando (efter start är redigeraren i den) och text ( engelsk  infogningsläge , direkt textredigeringsläge, liknande de flesta "normala" redaktörer). Det finns andra lägen också.

Vim är inte intuitivt (annat än i "text"-läge), så att arbeta effektivt med editorn kräver förkunskaper.

Funktionalitet

Recension: Utvalda vi-förbättringar

Jämfört med klassiska vi har Vim följande förbättringar:

Vim hjälpsystem

Vim har ett mycket bekvämt och detaljerat hjälpsystem, och ett system för att navigera och navigera mellan dess sektioner. För att öppna någon av dess sektioner, använd bara kommandot :help i kommandoläge.

Terminologi

Funktionssätt

Normalläge

Naturligtvis finns det många fler sådana lag. Poängen är att du måste lära dig dessa kommandon för att kunna använda. Du kanske hävdar att du förmodligen inte kan lära dig alla dessa kommandon, eftersom det finns hundratals olika rörelsekommandon, några enkla och några ganska smarta, och att det skulle ta veckors övning att lära dig alla dessa kommandon. Tja, du behöver inte lära dig alla. Istället måste du förstå din individuella redigeringsstil och bara lära dig de kommandon som hjälper till att göra den mer effektiv [5] .

Bram Moolenaar

Som standard startar Vim i normalt läge, även kallat kommandoläge. Tangenttryckningar i detta läge uppfattas som kommandon (kopiera, ta bort, flytta text, etc.).

Bland de normala lägeskommandona finns kommandon "enkeltecken". Så om du till exempel trycker $på kommer markören att flyttas till slutet av raden; trycka på knappen 0(noll) - till början; D(med versaler) - för att ta bort ( radera ) en del av den aktuella raden från den aktuella markörpositionen till slutet; С(med versaler) - för att ersätta ( ändra) en del av den aktuella raden från den aktuella markörpositionen till slutet, etc.

Andra kommandon för deras arbete kommer att vänta på ytterligare fortsättning av input. Till exempel fär den ansvarig för att snabbt flytta på en rad till nästa tecken som skrivs efter sig själv. Efter att ha tryckt på fVim kommer därför att vänta på att detta tecken ska skrivas för att använda det som sök.

Efter att ha tryckt på y( y ank), d, coch andra liknande "kontroll"-tangenter, kommer Vim att vänta på ytterligare inmatning av kommandon som anger objektet som åtgärden ska utföras på (kopiera, ta bort eller ersätt, respektive). Så, det dawkommer att radera det aktuella ordet under markören ( radera ett mbient ord ), och alla tecken från den aktuella markörpositionen  till slutet av raden. d$

Sådana mycket enkla kommandon används inte bara i "manuellt läge" (när de, om nödvändigt, skrivs varje gång från tangentbordet), utan också när du ställer in komplexa sekvenser av åtgärder .

Det normala läget är det centrala läget , från vilket övergången till alla andra utförs. Du kan växla från valfritt läge till kommandoläge genom att trycka två gånger på knappen Esc(i de flesta fall räcker det med ett tryck).

Infoga läge

Infogningsläge ( engelska  infogningsläge ), där text skrivs in.

För att växla från kommandoläge till infogningsläge kan du trycka ipå (för att börja klistra in text vid markören) eller a(för att börja klistra in text efter markören). Det finns också ett antal andra tangenter och deras kombinationer för att växla till direkt textredigeringsläge (till exempel genom ett av textobjektsersättningskommandona).

I det här läget fungerar Vim precis som de flesta "vanliga" textredigerare. Som standard behandlas tecken som skrivs inte som kommandon, utan infogas i befintlig text. Men även i detta läge kan du ställa in speciella redigeringsåtgärder som utförs när vissa tangenter eller deras kombinationer trycks ned. Som ett exempel kan du ange att när du skriver en öppningsparentes läggs (den matchande avslutande parentesen till omedelbart och markören placeras mellan dem.

CtrlKortkommandon ( + R, etc.) kan också användas för att infoga, ta bort, ändra och autokomplettera text .

När du skriver ett förkortningsord ersätts detta ord automatiskt med en fördefinierad text.

Kommandoradsläge

Detta läge tas fram genom att trycka :från normalläget. Kolonet följs av ett komplext kommando (till exempel sök eller ersätt), som efter inmatning skickas för exekvering genom att trycka på ↵ Enter. Efter att ha utfört kommandot återgår editorn till normalt läge. Det här läget innehåller även kommandon för att söka vidare i texten /, söka bakåt i texten ( ?) och ett filterkommando !för att skicka data till ett externt filter.

Visuellt läge

Det visuella läget var frånvarande från Vi och dök upp först i Vim. Det är lite likt kommandot. Med hjälp av speciella kontrollkommandon, i kombination med pilar och navigeringskommandon, kan du välja textfragment tecken för tecken, rad för rad eller som ett block och sedan tillämpa normallägeskommandon på dem (till exempel radera den markerade texten eller ersätta den). Redigering i detta läge är lättare än i normalt läge eftersom du tydligt kan se vilket textblock det anropade redigeringskommandot kommer att gälla för.

Automatisering av operationer

Vims förmåga att skilja mellan textobjekt (ord, meningar, stycken, rader, enskilda tecken, etc.) låter dig ställa in en sekvens av åtgärder för att automatisera vissa operationer.

Ja, efter kommandot

nmap < F7 > byei << ESC > ea >< / < C - R > 0 >< ESC >

Om du trycker på F7konverterar du (i kommandoläge) vilket ord som helst under markören (oavsett dess längd och tecken den består av) till en xml-tagg . Till exempel, om det nuvarande ordet under markören är div , så kommer det att konverteras till <div></div> , om transform  är sedan till <transform></transform> osv.

Vim är kapabel till mycket mer komplexa transformationer, du kan också ställa in dina egna funktioner för att transformera data och automatisera rutinoperationer.

Alla åtgärder som är genomförbara i Vim "manuellt" (det vill säga direkt av en person vid tangentbordet) kan automatiseras (inklusive växling mellan olika lägen).

Versionshistorik

Versionshistorik
datumet Version Ändringar
1988 1.0 Baserad på Stevie för Amiga , med titeln Vi Imitation , aldrig officiellt släppt.
2 november 1991 1,14 [6] Första offentliga release för Amiga
1992 1,22 [6] Porteras till Unix . Nu tävlar Vim med vi . Från det ögonblicket blev Vim Vi Improved
12 augusti 1994 3,0 [6] Stöd för delade fönster
29 maj 1996 4,0 [6] Grafiskt användargränssnitt
19 februari 1998 5,0 [6] Syntaxmarkering , ett enkelt skriptspråk (användardefinierade funktioner, kommandon, etc.)
6 april 1998 5.1 Bugfixar och andra ändringar.
27 april 1998 5.2 Stöd för långa rader, inbyggd filläsare, dialogrutor, popup-menyer, valläge, sessionsfiler, användardefinierade funktioner, kommandon, tcl- gränssnitt och andra ändringar.
31 augusti 1998 5.3 Bugfixar och andra ändringar.
25 juli 1999 5.4 Enkel filkryptering, olika förbättringar
19 september 1999 5.5 Bugfixar, olika förbättringar
16 januari 2000 5.6 Nya syntaxfiler, buggfixar och andra ändringar
24 juni 2000 5.7 Samma
31 maj 2001 5.8 Samma
26 september 2001 6,0 [6] Vikning , plugins, flerspråkighet och andra förändringar
24 mars 2002 6.1 Felkorrigering
1 juni 2003 6.2 GTK2 , arabiskt stöd , kommando: försök, mindre funktioner, buggfixar
7 juni 2004 6.3 Buggfixar, översättningsuppdateringar, taggförbättringar
15 oktober 2005 6.4 Buggfixar, Perl , Python och Ruby stödjer uppdateringar
7 maj 2006 7,0 Stavningskontroll , automatisk komplettering , flikar ("flikar"), markering av aktuell rad och kolumn, ångra grenar och andra ändringar
12 maj 2007 7.1 Bugfixar, nya körbara filer och syntaxfiler och andra ändringar
9 augusti 2008 7.2 Bugfixar, nya körbara filer och syntaxfiler, säkerhetsförbättringar och andra ändringar
15 augusti 2010 7.3 Bugfixar, nya körbara filer och syntaxfiler, säkerhetsförbättringar, "perpetual" ångra, upphört stöd för Mac OS 9 och GTK1 , Lua - stöd och andra ändringar
10 augusti 2013 7.4 Ny, snabbare motor för reguljära uttryck och andra ändringar
12 september 2016 8,0 Asynkron I/O, lambda-uttryck , stängningar , stöd för GTK+ 3 och Microsoft DirectX och andra ändringar.
18 maj 2018 8.1 Stöd för att öppna en terminal inuti ett Vim-fönster [7] .
14 december 2019 8.2 Popup-fönster
28 juni 2022 9,0 [8] Vim9 skript

Portabilitet

En av fördelarna med Vim-redigeraren är dess tillgänglighet för många operativsystem . Detta gäller särskilt för systemadministratörer som måste redigera filer över plattformar.

Vim körs på följande operativsystem:

Vim Touch

För operativsystemet Android , som använder pekskärmen som sin primära inmatningsenhet, skrev David Tao en anpassad version av vim, vim touch, som för närvarande distribueras under Apache-licensen [9] [10] [11] [12] . Det finns även en variant av DroidVim.

Utmärkelser

Från 2001 till 2004 Vim var vinnaren av LinuxJournals Readers' Choice Awards för favorittextredigerare. Han fick också Linuxworld Editors' Choice Award 1999 och Slashdot Beanie Award 2000.

Licens

Vim distribueras under en GPL - kompatibel licens  som kallas Charityware .  En del av medlen som doneras till utvecklingen av Vim används för att stödja föräldralösa barn i Uganda genom ICCF Holland .

Vim-tillägg

Det totala antalet förlängningar tillgängliga på den officiella webbplatsen är mer än 3000 [13] .

Populära Vim-tillägg inkluderar:

  • MiniBufferExplorer ;
  • taglist  - för att se strukturen för programfiler (lista över funktioner, etc.);
  • bufexplorer (sedan Vim 7.4, mestadels inaktuell);
  • closetag  - för mer bekväm stängning av taggar vid redigering av html- och xml- filer;
  • supertab  - för automatisk komplettering av ord genom att trycka Tab ↹(samtidigt fungerar radindrag som vanligt);
  • projekt - för att organisera filer i projekt för enklare navigering genom dem;
  • indexerare - för att generera taggar med hjälp av ctags för alla filer som ingår i projektet (projektet kan organiseras både med projektets plugin och utan det). Taggar behövs för att snabbt flytta från ett funktionsanrop till dess deklaration, för att få en lista över medlemmar i en struktur eller klass, etc.

Lista över populära Vim-tillägg efter deras popularitet på GitHub: http://vimawesome.com

På grund av flexibiliteten hos alternativen som tillhandahålls genom tillägg, kan Vim också användas som en personlig wiki .

Anteckningar

  1. Vim | freshmeat.net . Hämtad 21 maj 2009. Arkiverad från originalet 6 juni 2009.
  2. Vim på icke-engelska språk . Hämtad 4 februari 2008. Arkiverad från originalet 23 augusti 2011.
  3. http://arstechnica.com/information-technology/2011/11/two-decades-of-productivity-vims-20th-anniversary/
  4. Vim 9.0  : vim online - 2022.
  5. Sju vanor av effektiv textredigering . Hämtad 7 april 2010. Arkiverad från originalet 2 oktober 2011.
  6. 1 2 3 4 5 6 Moolenaar, Bram Vim, en textredigerare med öppen källkod ( 2002-01-15 ). Hämtad 24 oktober 2005. Arkiverad från originalet 23 augusti 2011.
  7. OpenNews: Vim 8.1 textredigerare släppt . www.opennet.ru Hämtad 25 maj 2018. Arkiverad från originalet 25 maj 2018.
  8. Bram Moolenaar. Vim 9.0 är släppt! . Tillträdesdatum: 30 juni 2022.
  9. Alex Young. Recension: VimTouch för Android (inte tillgänglig länk) . usevim.com (19 september 2012). Hämtad 15 juni 2016. Arkiverad från originalet 13 juni 2016. 
  10. Vi förvandlar surfplattan till en fullfjädrad arbetsplats . "Hacker" (26 november 2013). Hämtad 15 juni 2016. Arkiverad från originalet 9 augusti 2016.
  11. Vitaly Soroko. PHP på Android // LinuxFormat . — 2016. — Maj ( Nr 05 (209) ). - S. 22 .
  12. Vim Touch-projektGitHub
  13. Vim - skript  . Datum för åtkomst: 4 januari 2012. Arkiverad från originalet 3 februari 2012.

Länkar