Vi vs vim, eller, finns det någon anledning till att jag någonsin skulle vilja använda vi?

Jag vet lite om * NIX-textredigerare (migrerar för närvarande från nano till vim), och efter att ha tittat lite runt på Unix & Linux SE har de märkt att vi används istället för ”vim” i ett stort antal frågor. Jag vet att ”vim” står för ”Vi IMproved”, och med det i åtanke undrar jag varför någon hellre vill använda vi istället för vim. Har vi någon betydande fördel jämfört med vim?

Redigera: Jag tror att min fråga tolkas felaktigt. Jag vet att vim för det mesta är betydligt mer kraftfull och funktionskomplett än vi är. Vad jag vill veta är om det finns några möjliga fall där vi har en fördel jämfört med vim, till exempel mindre minnesanvändning, prevalens på * nix-system, etc.

Kommentarer

  • Det fina med vi är att du kan förvänta dig att det ska finnas på alla POSIX-kompatibla system.
  • Egentligen inkluderar Ubuntu-standardinstallationen vi och inte vim .. Ubuntu är en av de mest användarvänliga distro btw 😉
  • @amyassin Detta är felaktig, liksom de flesta Linux-distributioner inkluderar Ubuntu vim. vi är bara en symbolisk länk som så småningom pekar på vim i standardinstallationen.
  • Mitt råd är: Använd Vim, men lär dig vi med POSIX-specifikationerna för vi . På så sätt har du bärbar kunskap såväl som att känna till Vim-tillägg.
  • @DDK Du saknade ” så småningom ” i mitt uttalande. ” ls -l / etc / alternativ / vi ” – > ” lrwxrwxrwx 1 rotrot 17 jan. 1 2016 / etc / alternativ / vi – > /usr/bin/vim.tiny”

Svar

vi är (även) en POSIX-standardredigerare . Det finns många implementeringar och vim är sannolikt det mest populära.

Medan många traditionella operativsystem som uppfyller Unix ger vi implementeringar mycket nära standarden, vim har lagt till många extra funktioner som gör det till ett tveeggat svärd.

Naturligtvis är dessa tillägg vanligtvis utformade för att underlätta redigeringsprocessen och tillhandahålla användbara funktioner och funktioner. Men när du väl är van vid några av dem (inte de kosmetiska som syntaxfärgning men de som ändrar redaktörens beteende) kan du enkelt glömma att de är specifika, och använda en annan implementering, inklusive de baserade på den ursprungliga BSD. koden kan vara väldigt frustrerande. Det motsatta är också sant.

Detta liknar den fråga som händer med skript som använder icke-POSIX-bashismer inför mer ortodoxa skalimplementeringar som dash eller ksh.

Svar

Nej vi har inte någon betydande fördel jämfört med vim snarare är det tvärtom. Vim har fler fördelar än Vi. Du kanske är intresserad av: Varför, åh VARFÖR, gör de #? @! nutheads use vi?

Edit läs också: Är det viktigt att lära sig VIM?

Kommentarer

  • Japp. Jag använder ’ ingen IDE eftersom de redaktörer de tvingar dig att använda bara inte är ’ t Vim.
  • @Keith Jag använder både Xcode och Eclipse och jag ’ kan fortfarande redigera med vi.
  • @Keith SlickEdit har en fantastisk Vim-emulering och IDEA ’ kommer nära den. Visual Studio har också ViEmu.
  • IntellIJ har också ett trevligt vim-plugin som åsidosätter standardredigerarens ’ s beteende.

Svar

Efter att ha tillbringat en stor del av mitt liv (exklusive barndom) redigerat bekvämt med Vim, tillbringade jag ungefär en månad med bara vi. Då insåg jag att jag hade varit beroende av Vim för alla mina textändringsbehov. Innan min resa med vi, när jag var tvungen att byta ut text eller utföra en liknande operation i en stor grupp filer, skulle jag bara öppna filerna i Vim och köra ett :bufdo -kommando och när jag var tvungen att dra in eller formatera några filer öppnade jag dem i Vim och använde kommandona Vim ”s = och gw Jag var Vim-beroende.Efter att vi insett att vi inte hade dessa kommandon tvingades jag utföra masstext-omvandlingar med sed och lärde mig mycket om andra program som awk och indent. Även om jag i slutändan återvände till att använda Vim, var kunskapen jag fick med en mindre redigerad editor betydande och har visat sig vara mycket användbar. Förutom att lära mig om verktyg utanför en textredigerare blev jag också bättre bekant med vi. När jag jobbar på ett nytt system eller en server som inte har Vim, känner jag mig mycket bekvämare att använda vi än innan min månadslånga utflykt.

Förra månaden installerade jag Linux på en billig WM8650-surfplatta och fann att det fanns en märkbar prestandaskillnad mellan Vim och vi, så jag brukar använda vi på surfplattan.

Kommentarer

  • Jag tycker att detta är en vanlig fråga inom IT – verktygen som hjälper oss kan också dölja saker som vi ’ skulle kunna lära sig bättre.
  • Egentligen hantering platsredigering av filer på många filer kan ’ t bärbart göras med Awk eller Sed antingen . (-i växla på båda är en GNU-förlängning.) Men du kan använda dem bärbart med något som for f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done

Svar

Jag skulle ha svårt att leva utan vim men jag kan inte stå vi . Att lära sig det förstnämnda kommer dock åtminstone att ge dig en uppfattning om hur man ska hantera det senare när det är allt som är tillgängligt.

Vim-gränssnittet är som standard ganska nära vi. Om jag ”jag arbetar med ett system med vim det första jag gör är att lägga till de här sakerna till ~/.vimrc:

syntax enable set nocp set wildmenu 

Det ”är en massa andra saker som jag föredrar – nu slår och numrerar på, etc – men tänk inte.” Syntax aktiverar ”slår bara på grundläggande syntaxmarkering (något nötare: filetype plugin on är grundläggande också); ”nocp” stänger av vi-kompatibilitet och det är detta som börjar skilja vim från ye olde vi (t.ex. , det möjliggör showmode vilket gör hela upplevelsen något mer mänsklig, eftersom du nu har en aning om huruvida du är i kommando eller ~ INSERT ~ -läge). ”wildmenu” ger dig bara en horisontell kompletteringsmeny när du gör vissa saker, vilket också gör livet enklare.

textredigering -funktionerna i vim är oöverträffade – andra än emacs, jag har aldrig sett eller hört talas om en mjukvara som kommer nära. De är inte lätta att lära sig, men när du väl känner till dem är de mycket snabbare än musmenyer att använda och mycket mer dynamiska än de enkla viktiga makroalternativen i musmenybaserade gränssnitt. För programmering använder jag ibland vim tillsammans med en IDE som Eclipse, men jag gör det mesta av jobbet i vim.

Om du tar den vägen, lol, kolla in plugins för autoslutförande och taglista. Och se upp för den mörka sidan.

Kommentarer

  • Jag lägger alltid till set mouse=a också.
  • När det gäller din programmering kommentar, du kan tycka att eclim intressant …
  • @ire_and_curses: haven ’ t provade det. Eclipse och vim övervakar båda källfilerna och låter dem uppdateras externt, och att vända från ett skrivbord till ett annat vänder från ett skrivbord till ett annat. Verkar som helt idén.
  • Även om jag inte ’ tycker jag att detta svar ska vara det valda svaret (eftersom det ’ s partisk), är det ’ exakt vilken typ av perspektiv som är till hjälp för att förstå skillnaderna. Tack för att du tog ställning.

Svar

Fördelen är att vi vanligtvis förinstallerat i företags UNIX som AIX eller Solaris. Dessutom är vim inte tillgängligt på installationsmedia.

Svar

Detta är ett utdrag från Vim Koans :

Master Wq och Unix master

En gammal Unix master kom till Master Wq. ”Jag är orolig, Wq. Du undervisar vägen för Vim. vi är heligt men Vim inte; dess kod sprids, dess funktioner publikminne; dess binärer är stora, dess beteende inkonsekvent. Detta är inte sättet för Unix. Jag är rädd att du vilseleder dina elever. Vad kan man göra? ”

Master Wq nickade. ”Du har rätt,” sa han. ”Vim är trasig. Låt oss fixa det. Ska vi börja? ”

Den gamla Unix-mästaren gick med på och öppnade ett skal. Han skrev:

$ vi vim.c 

Han började koda. Master Wq tittade en stund och frågade honom: ”Vilken implementering av vi använder du? Nvi? Vim? Elvis? ”

” Jag vet inte ”, sade Unix-mästaren. ”Det spelar ingen roll.”

Master Wq nickade. Unix-mästaren satt bedövad ett ögonblick och stängde sitt dokument osparat.

Kommentarer

  • hahah … det är roligt för mig …. djupt men roligt.Tack för att du delar.

Svar

Som tidigare svar redan har nämnts, kommer vi med nästan alla UNIX-system där ute.

Jag ville bara lägga till ett exempel. Arch Linux är en särskilt populär och lätt distro som varken installatören eller basdistro levereras med vim som standard, men båda kommer med vi.

Detta är inte en fördel för vi per se , för att du helt enkelt kan installera vim manuellt, och det är lite du behöver göra i installationen som kräver en textredigerare, och ingenting där vim är överlägsen vi för det avsedda syftet. är mer allestädes närvarande och lättare än vim ger det några nischfördelar.

Dessutom, för att vara heltäckande, har ingen ännu uttryckligen nämnt att vi är en direkt föregångare till vim. Vim önskade specifikt att vara allt att vi var och mer.

Så på ett mycket direkt sätt är vim överlägset vi, eftersom det var utformat för att vara .

Svar

Den enda anledningen att någonsin använda vi över vim är när du inte har något annat val.

Det finns många, många skäl till varför vim står fo r ”vi förbättrades”!

Lån från ett relaterat inlägg svarade jag: –

  1. Flera fönster – horisontellt, vertikalt & flikar.
  2. Visuell markering.
  3. Onlinehjälp via kommandot: help.
  4. Spela in makron i ett register som du sedan kan utföra.
  5. Ångra (och gör om) flera gånger, snarare än gamla vi är galna ångra växla.
  6. Kommandoradshistorik, sökhistorik.
  7. Ett helt språk inbäddat tillsammans med en mängd tillgängliga funktioner, t.ex. getcwd ()
  8. Mycket utökad mönstermatchning.
  9. Slutförande av ord via ctrl-P & ctrl-N.
  10. En inbyggd filnavigator (lite klumpig, men kan vara användbar).
  11. ESC-tangenten avslutar faktiskt kommandon du försökte, ja, fly från istället för att (galet) köra dem som vi gör.
  12. Möjlighet att köra kommandon på alla buffertar, args eller windows via bufdo, argdo & windo.

Kommentarer

  • Du kunde antagligen ha tagit över ” många, många ” skäl som du nämnde i unix.stackexchange.com/a/425597/85039 svar här. Att ’ skulle göra det här svaret lite bättre; annars läser det mer som en kommentar än ett faktiskt svar
  • Punkt tas. Svaret uppdaterat, lånat från ett relaterat svar som jag gjorde igår.

Svar

Jag har märkt att jag endast välj Vi över VIM Jag kopierar och klistrar in ett textdokument eller en konfigurationsfil som jag har använt cat -kommandot. Detta beror på att när jag försöker ctrl-c och sedan ctrl-v till VIM öppnat dokument, det tvingar alla rader att ha en kommentar framför dem. Så när jag använder Vi till ctrl-v eller paste i Vi öppnat dokument, det klistrar in exakt det jag kopierade från. Förutom det använder jag VIM hela dagen.

Njut!

Kommentarer

Lämna ett svar

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