Vi vs vim, o cè qualche motivo per cui avrei voluto usare vi?

Conosco un po di * editor di testo NIX (attualmente in fase di migrazione da nano a vim) e, dopo aver guardato un po in giro su Unix & Linux SE, hanno notato che vi viene utilizzato invece di “vim” in un discreto numero di domande. So che “vim” sta per “Vi IMproved” e, con questo in mente, mi chiedo perché qualcuno preferirebbe usare vi invece di vim. Vi ha un vantaggio significativo rispetto a vim?

Modifica: penso che la mia domanda sia stata interpretata male. So che vim è, per la maggior parte, significativamente più potente e completo di funzionalità di vi. Quello che voglio sapere è se ci sono casi possibili in cui vi ha un vantaggio su vim, come un minor utilizzo di memoria, prevalenza su sistemi * nix, ecc.

Commenti

  • La cosa bella di vi è che puoi aspettarti che sia su ogni sistema conforme a POSIX.
  • In realtà, linstallazione standard di Ubuntu include vi e non vim .. Ubuntu è una delle distro più user friendly btw 😉
  • @amyassin This non è corretto, Ubuntu, come la maggior parte delle distribuzioni Linux, include vim. vi è solo un collegamento simbolico che alla fine punta a vim nellinstallazione predefinita.
  • Il mio consiglio è: Usa Vim, ma impara vi utilizzando le specifiche POSIX per vi . In questo modo hai una conoscenza portabile oltre a conoscere le estensioni Vim.
  • @DDK Ti sei perso ” alla fine ” nella mia dichiarazione. ” ls -l / etc / alternatives / vi ” – > ” lrwxrwxrwx 1 root root 17 gen. 1 2016 / etc / alternatives / vi – > /usr/bin/vim.tiny”

Risposta

vi è (anche) un editor standard POSIX . Ci sono molte implementazioni e vim è probabilmente la più popolare.

Mentre molti sistemi operativi tradizionali conformi a Unix forniscono vi implementazioni molto vicine allo standard, vim ha aggiunto molte funzionalità extra che lo rendono unarma a doppio taglio.

Naturalmente, queste estensioni sono generalmente progettate per facilitare il processo di modifica e fornire caratteristiche e funzionalità utili. Tuttavia, una volta che sei abituato ad alcuni di essi (non quelli cosmetici come la colorazione della sintassi ma quelli che cambiano il comportamento delleditor) puoi facilmente dimenticare che sono specifici e usando unimplementazione diversa, comprese quelle basate sul BSD originale il codice può essere molto frustrante. È vero anche il contrario.

Questo è abbastanza simile al problema che si verifica con gli script che utilizzano bashismi non POSIX di fronte a implementazioni di shell più ortodosse come dash o ksh.

Risposta

Nessun vi “t ha qualsiasi vantaggio significativo rispetto a vim è piuttosto il contrario. Vim ha più vantaggi di Vi. Potresti essere interessato a: Perché, oh PERCHÉ, fai quelli #? @! i pazzi usano vi?

Modifica anche leggere: Vale la pena imparare VIM?

Commenti

  • Sì. Non ‘ uso alcun IDE perché gli editor che ti costringono a usare non sono ‘ t Vim.
  • @Keith Uso sia Xcode che Eclipse e ‘ sono ancora in grado di eseguire modifiche solo con vi.
  • @Keith SlickEdit ha unottima emulazione di Vim e IDEA ‘ s si sta avvicinando. Inoltre, Visual Studio ha ViEmu.
  • IntellIJ ha anche un bel plug-in vim che sovrascrive il comportamento delleditor standard ‘.

Risposta

Dopo aver trascorso gran parte della mia vita (esclusa linfanzia) a modificare comodamente con Vim, ho trascorso circa un mese solo usando vi. In tal modo, mi sono reso conto che ero dipendente da Vim per tutte le mie esigenze di modifica del testo. Prima del mio viaggio con vi, ogni volta che dovevo sostituire del testo o eseguire unoperazione simile in un grande gruppo di file, aprivo semplicemente i file in Vim ed eseguivo un comando :bufdo e ogni volta che dovevo indentare o formattare alcuni file, li aprivo in Vim e usavo i comandi = e gw di Vim Ero dipendente da Vim.Dopo aver realizzato che vi non disponeva di questi comandi, sono stato costretto a eseguire trasformazioni di testo in blocco con sed e ho imparato molto su altri programmi come awk e indent. Anche se alla fine sono tornato a usare Vim, la conoscenza che ho acquisito utilizzando un editor meno caratterizzato è stata sostanziale e si è dimostrata estremamente utile. Oltre a conoscere gli strumenti al di fuori di un editor di testo, ho anche conosciuto meglio vi. Ogni volta che lavoro su un nuovo sistema o su un server che non ha Vim, mi sento molto più a mio agio nellusare vi rispetto a prima della mia escursione di un mese.

Inoltre, il mese scorso ho installato Linux su un tablet WM8650 economico e ho riscontrato una notevole differenza di prestazioni tra Vim e vi, quindi tendo a usare vi sul tablet.

Commenti

  • Trovo che questo sia un problema comune nellIT: gli strumenti che ci aiutano possono anche nascondere cose che ‘ faremmo meglio a imparare.
  • In realtà, gestire la modifica sul posto di molti file può ‘ essere eseguita in modo portatile con Awk o Sed sia . (-i switch on both è unestensione GNU.) Ma puoi usarli in modo portabile con qualcosa come for f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done

Answer

Avrei difficoltà a vivere senza vim ma non posso “non sopportarlo . Tuttavia, imparare il primo ti lascerà almeno con unidea di come affrontare il secondo quando questo è tutto ciò che è disponibile.

Linterfaccia di vim di default è in realtà abbastanza vicina a vi. “Sto lavorando su un sistema con vim la prima cosa che faccio è aggiungere questa roba a ~/.vimrc:

syntax enable set nocp set wildmenu 

Cè “un mucchio di altre cose che preferisco – nowrap e numerazione, ecc – ma non importa.” Syntax enable “attiva solo levidenziazione della sintassi di base (un po più muscoloso: filetype plugin on è anche fondamentale); “nocp” disattiva la compatibilità con vi ed è questo che inizia a distinguere vim da ye olde vi (ad es. , abilita showmode che rende lintera esperienza un po più umana, dal momento che ora hai qualche indizio su se sei al comando o in modalità ~ INSERT ~). “wildmenu” ti dà solo un menu di completamento orizzontale quando si fanno alcune cose, il che rende anche la vita più facile.

Le funzionalità di modifica del testo di vim non sono seconde a nessuno – a parte emacs, non ho mai visto o sentito parlare di un software che si avvicina. Non sono facili da imparare, ma una volta che li conosci, sono molto più veloci da usare dei menu del mouse e molto più dinamici delle semplici alternative macro chiave nelle interfacce basate sul menu del mouse. Per la programmazione, a volte uso vim insieme a un IDE come Eclipse, ma svolgo la maggior parte del lavoro in vim.

Se scegli questo percorso, lol, guarda i plugin di completamento automatico e taglist. E fai attenzione al lato oscuro.

Commenti

  • Aggiungo sempre anche set mouse=a.
  • Per quanto riguarda la tua programmazione comment, potresti trovare eclim interessante …
  • @ire_and_curses: haven ‘ t provato. Eclipse e vim monitorano entrambi i file di origine e consentono loro di essere aggiornati esternamente, e il passaggio da un desktop allaltro significa passare da un desktop allaltro. Sembra piuttosto unidea, anche se.
  • Anche se ‘ non penso che questa risposta dovrebbe essere la risposta scelta (poiché ‘ è di parte), ‘ è esattamente il tipo di prospettiva che è utile per comprendere le differenze. Grazie per aver preso una posizione.

Risposta

Il vantaggio è che di solito vi è preinstallato in UNIX aziendale come AIX o Solaris. Inoltre vim non è accessibile sul supporto di installazione.

Risposta

Questo è estratto da Vim Koans :

Master Wq e Unix master

Un vecchio master Unix è arrivato a Master Wq. “Sono turbato, Wq. Tu insegni la via di Vim. vi è santo ma Vim non lo è; il suo codice si allarga, le sue caratteristiche affollano la memoria; i suoi binari sono vasti, il suo comportamento incoerente. Questo non è il modo di Unix. Temo che tu possa fuorviare i tuoi studenti. Cosa si può fare? “

Il Maestro Wq annuì. “Hai ragione”, ha detto. “Vim è rotto. Cerchiamo di aggiustarlo. Cominciamo? “

Il vecchio master Unix acconsentì e aprì una shell. Ha digitato:

$ vi vim.c 

Ha iniziato a programmare. Il Maestro Wq ha guardato per un po e poi gli ha chiesto: “Quale implementazione di vi stai usando? Nvi? Vim? Elvis? “

” Non lo so “, disse il master Unix. “Non importa.”

Il Maestro Wq annuì. Il master Unix rimase stordito per un momento e chiuse il suo documento senza salvarlo.

Commenti

  • hahah … è divertente per me …. profondo ma divertente.Grazie per la condivisione.

Risposta

Come già accennato nelle risposte precedenti, vi viene fornito con quasi tutti i sistemi UNIX là fuori.

Volevo solo aggiungere un esempio. Arch Linux è una distribuzione particolarmente popolare e leggera che né lInstaller né la distribuzione di base vengono fornite con vim per impostazione predefinita, tuttavia entrambe vengono fornite con vi.

Questo non è un vantaggio per vi di per sé , perché puoi semplicemente installare vim manualmente, e cè poco da fare nellinstallazione che richiede un editor di testo, e niente in cui vim è superiore a vi per lo scopo previsto. Ma capire la differenza e quel vi è più onnipresente e leggero di quanto vim gli dia alcuni vantaggi di nicchia.

Inoltre, giusto per essere completo, nessuno ha ancora detto esplicitamente che vi è un precursore diretto di vim. Vim è stato progettato specificamente per essere tutto che vi era, e altro ancora.

Quindi, in un modo molto diretto, vim è superiore a vi, perché è stato progettato per essere .

Risposta

Lunico motivo per usare vi su vim è quando non hai altra scelta.

Ci sono molte, molte ragioni per cui vim sta per r “vi migliorato”!

Prendendo in prestito da un post correlato ho risposto: –

  1. Più finestre – orizzontale, verticale & tab.
  2. Evidenziazione visiva.
  3. Guida in linea tramite il comando: help.
  4. Registra le macro in un registro che puoi quindi eseguire.
  5. Annulla (e ripeti) più volte, piuttosto che il folle interruttore di annullamento del vecchio vi.
  6. Cronologia della riga di comando, cronologia delle ricerche.
  7. Un intero linguaggio incorporato insieme a una serie di funzioni disponibili, ad es. getcwd ()
  8. Corrispondenza di modelli ampiamente estesa.
  9. Completamento di parole tramite ctrl-P & ctrl-N.
  10. Un navigatore di file integrato (un po goffo, ma può essere utile).
  11. Il tasto ESC in realtà chiude i comandi che stavi cercando, beh, scappare invece di eseguirli (follemente) come fa vi.
  12. Possibilità di eseguire comandi su tutti i buffer, arg o finestre tramite bufdo, argdo & windo.

Commenti

  • Probabilmente avresti potuto recuperare i ” molti, molti ” motivi che hai menzionato in unix.stackexchange.com/a/425597/85039 rispondi qui. Questo ‘ migliora leggermente questa risposta; altrimenti si legge più come un commento che come una risposta effettiva
  • Punto preso. Risposta aggiornata, prendendo in prestito da una risposta correlata che ho fatto ieri.

Risposta

Ho notato che solo scegli Vi su VIM quando Sto copiando e incollando un documento di testo o un file di configurazione che ho utilizzato il comando cat. Questo perché quando provo a ctrl-c e poi ctrl-v nel VIM documento aperto, forza tutte le righe ad avere un commento davanti ad esse. Quindi, quando utilizzo Vi per ctrl-v o paste nel Vi documento aperto, incolla esattamente ciò da cui ho copiato. Oltre a questo, utilizzo VIM tutto il giorno.

Buon divertimento!

Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *