Största skillnaderna mellan Vim och vi

Idag bestämde jag mig för att prova vi istället för Vim; Jag ville se hur annorlunda det är.

Jag märkte inte mycket skillnader alls. Det största jag märkte var hur vi inte sa -- INSERT -- när jag gick in i insättningsläge och det fanns några mindre gränssnittsskillnader.

Detta fick mig att undra, vilka är de största skillnaderna mellan vi och Vim?

Kommentarer

  • Du är självklart inte ’ t som använder många avancerade funktioner i vim. block select, sök efter ord under markören, stegnummer under markören, syntaxmarkering etc.
  • Relaterat inlägg – Vad är skillnaden mellan Vi och Vim?
  • Det finns några uppenbara trevliga saker som utökat nyckelstöd. Piltangenterna fungerar i motsats till hjkl.

Svar

Det finns faktiskt ett hjälpkommando i Vim för att berätta om skillnaderna: :help vi_diff (notera understrykningen: :help vi_diff)

Från Vims webbplats är de största:

obegränsat ångra

Du kan göra xxxx och ångra var och en av de fyra raderingarna. När var förra gången du skrev ” jjjj ” och sedan fick reda på att låstangenten var på? Du slog av misstag fem rader tillsammans, och vi kan ångra endast det sista kommandot. I Vim kan du ångra alla fyra ” J ” kommandon och få tillbaka din originaltext.

portabilitet

Vi finns bara på Unix. Vim fungerar på MS-Windows, Maci ntosh, Amiga, OS / 2, VMS, QNX och andra system. Och även på alla Unix-system.

syntax som markerar

Vim kan vara programmerad för att markera delar av bufferten i olika färger eller stilar, baserat på vilken filtyp som redigeras. Det finns hundratals syntaxmarkeringsregler som samlas med Vim.

GUI

Vim fungerar bra på en konsol, men den kan köras inbyggt i många GUI, inklusive X Windows, Mac OS och Microsoft Windows. Den använder inbyggda GUI-widgets för att bläddra, dela buffertar och menyer. Det kan också prata med klippbordet.

Kommentarer

  • Några fler skillnader nämns i FAQ
  • Enligt readme är några av dessa operativsystem stöds inte längre.

Svar

Vim har många funktioner som Vi inte har, även funktioner som inte är uppenbart ”avancerade” funktioner.

I praktiken betyder det att om du är van vid Vi kommer du troligen att få mycket få skillnader om du börjar använda Vim (eller någon annan Vi-klon), men om du är van till Vim och om dina ”reflexer” inkluderar funktioner som markering av visuellt läge, varje nyckelåtgärd som börjar med ”g” eller ”z”, vilken textåtgärd som helst med ”i” eller ”a” [t.ex. ”daw” för att radera ett ord under markören], navigera med piltangenterna i infogningsläge osv. kommer du att upptäcka att de inte fungerar i Vi.

Det är också frågan om vad exakt du använde när du säger att du ”försökte Vi”. På många system kör ”vi” faktiskt Vim, i ett läge där några av dessa skillnader gäller (standardvisningsmetod som du observerade, piltangenterna fungerar inte i infogningsläge) och andra fungerar inte (visuellt läge och g / z-tangenter fungerar ), och vissa funktioner beror på ett kompileringsalternativ som ibland är inaktiverat i den ”lilla Vim” som används för detta (textobjekt, som ”aw” ett ord, är ett av dessa). Du får inte dessa om du kör real Vi, eller om ”vi” är någon annan klon med färre eller andra funktioner än Vim, till exempel nvi eller VILE.

Och på det obskyra sida, medan ”liten Vim i Vi-läge” uppenbarligen inte har några funktioner som en fullständig Vim inte har, finns det några funktioner i det äkta originalet Vi som vim saknar. Dessa är dokumenterade i :help vi-differences.

Kommentarer

  • Jag ’ satsade kraftigt på att OP faktiskt har en ” liten vim ” vi.
  • du säger att i många system jag kommando kör faktiskt vim. Så hur får jag reda på om jag verkligen kör vi eller vim?
  • @firstpostcommenter Nåväl, det ’ kommer i princip fortfarande att se ut som vim – ~ på till vänster om skärmen kommer att vara blå till färgen och versionens meddelandetext kan fortfarande visas i mitten av skärmen om du startar den själv utan att ange en fil.Om du ’ är mycket bekymrad över vilken redaktör du kör, finns det även andra vi-kloner som kan installeras istället och den äkta ” vi ” är mycket sällsynt i linux / bsd-distributioner.

Svar

De flesta jämförelser ger mer funktionalitet till Vim än vi, men det finns ett undantag. Det fanns ett ”öppet” läge i vi, och Vim har inte det här läget.

Öppet läge är ett enradigt läge som användes på dagen med terminaler som inte hade elektronisk skärmar, dvs. teletyper, bokstäver och liknande, och även med skärmar där markören bara finns längst ner.

Jag vet att det finns dokumentation där ute som säger att Vim simulerar öppet läge, men min erfarenhet är att det gör det inte. För jag har sett det användas med vi med egna ögon och jag har aldrig sett Vim göra det. Det verkar som att Vim bara använder kommandot open för att öppna och redigera en fil i visuellt läge. Jag tror att Vims officiella dokumentation anger att den inte stöder öppet läge.

Kommentarer

  • I har ex-vi.sourceforge.net installerat, vilket är en port till original Vi. Hur startar jag det här öppna läget? Manpage nämner det när man talar om ^R, men ger ingen annan hjälp. :open some/file returnerar open: No such command from open/visual.
  • @muru Q för att ange ex och sedan open. z för att visa sammanhanget för den aktuella raden när du ’ är i öppet läge. För att backa, Q och sedan vi.

Svar

Vanliga frågor och svar om Vim har en välformaterad lista: https://vimhelp.org/vim_faq.txt.html#faq-1.4

Utdrag från FAQ:

  • Ångra på flera nivåer
  • Flikar, flera fönster och buffertar
  • Flexibelt infogningsläge (kan användas piltangenter i infogningsläge)
  • Makron
  • Visuellt läge (visuellt markera textavsnitt)
  • Blockera operatörer
  • Online hjälpsystem
  • Redigering av kommandoraden och historik
  • Komplettering av kommandoraden (komplettering av flikar)
  • Horisontell rullning (långa rader)
  • Unicode- och internationaliseringsförbättringar .

Svar

Jag tycker att det är väldigt svårt att göra jämförelsen på grund av förändringarna i vi som har hände över tiden.

När jag gick på college använde jag vanlig vanilj vi på en dum terminal (och även på en terminalemulator på en Mac) som anslöt till mainframes med System V. Du kan inte ens upptäcka att någon mer.

Men jag är inte ens säker på att det var sant vi. Vid den tiden gjordes många kloner och portar eftersom vi inte var öppen källkod vid den tiden. Och när leverantörer skapade kloner lade de till funktioner som inte var i vi. Historien är typ av invecklad. Du kan läsa den på Wikipedia och någon annanstans.

Så om du inte använde vissa leverantörer / hårdvara använde du inte vi, men något som vi.

Men jag minns att vi (eller klonen jag använde) var väldigt minimalistiska i sitt gränssnitt (inga färger, inga INSERT-etiketter, inga flerfaldiga ångrar osv.) men ändå kraftfulla i vad det faktiskt kunde åstadkomma. Mycket praktiskt.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *