Quali sono i vantaggi dell'apprendimento di Vim? [chiuso]


467

Come programmatore trascorro molte ore alla tastiera e lo faccio da più o meno da 12 anni. Se c'è qualcosa a cui non mi sono mai abituato durante tutto questo tempo, sono queste microinterruzioni costanti fastidiose e quasi inconsce che sperimento durante la codifica, a causa di alcune delle attività più comuni di modifica del codice. Cose come una semplice copia e incolla da una riga diversa (o anche la stessa riga) o lo spostamento di 1 o 2 righe su o giù dalla posizione corrente richiedono troppa digitazione o comportano l'uso dei tasti freccia ... e si ottiene peggio quando voglio andare oltre - finisco per usare il mouse. Ora immagina questo stesso scenario ma su un laptop.

Ho sempre pensato di imparare VIM, ma il tempo necessario per padroneggiarlo mi ha sempre fatto venire voglia di fare un passo indietro.

Mi piacerebbe sentire le persone che l'hanno imparato e se finisce per essere una di quelle cose di cui non puoi vivere senza.

Al lavoro, utilizzo VS2008, C # e R #, che insieme rendono la modifica del codice molto più rapida e semplice che mai, ma anche così penso che mi piacerebbe non dover usare il mouse.

E nemmeno i tasti freccia.


7
Non è necessario passare da tastiera a mouse è sicuramente bello. Sul Mac, ho usato i tasti di navigazione di emacs (ctrl-A per esempio) anche in un editor GUI come BBEdit o Xcode, solo per evitare il movimento extra con il mouse.
Craig S,

236
Ne vale assolutamente la pena. Learn vim;)
Kyle Walsh,

20
Puoi imparare vim di base (dimenticavi di vi) in un paio di minuti, digita vimtutor nel terminale e sarai impostato con quello di base: tutto ciò che impari nei prossimi 20 anni dipende da te. Sono solo curioso di sapere in che modo VS2008, C # e R # ti aiutano a risolvere i problemi relativi a dover sprecare la tua vita spostandoti tra tastiera e tasti freccia / mouse?
stefanB,

43
Uno dei migliori investimenti che abbia mai fatto.
Johnsyweb,

10
Ho creato questo gioco per aiutare mio nipote di sette anni a imparare a muoversi rapidamente in Vim: la versione beta di kikuchiyo.org ti consente di attaccare i nemici con la spada laser, "i" per l'attacco a sinistra e "a", a destra: PI ha imparato Vim per gli stessi motivi che hai fatto. Ho trovato muoversi nella parte più difficile a cui abituarmi. Spero che il gioco ti aiuti ad accelerare, se hai bisogno di aiuto :) Buona fortuna! :)
kikuchiyo

Risposte:


249

Uso vi e vim anche da circa 20 anni e sto ancora imparando cose nuove.

Il sito Best of Vim Tips di David Rayner è un eccellente elenco, anche se probabilmente è più utile una volta che hai familiarità con vim.

Voglio anche menzionare il sito ViEmu che contiene alcune informazioni fantastiche sui suggerimenti di vi / vim e specialmente l'articolo Perché, oh PERCHÉ, quei nuthead usano vi? ( versione archiviata )


8
Sì, ci imparo sempre anche cose nuove. Anche il mio editor preferito.
Craig S,

20
Mi chiedo se sia una cosa buona o cattiva. Se impari costantemente cose nuove, la curva di apprendimento è DAVVERO ripida, le funzioni sono VERAMENTE nascoste e non c'è alcun senso di padronanza. Ad ogni modo, se volevi RISC, sei andato con vi invece che con vim, giusto?
bastibe

7
@Paperflyer: ho avuto gli stessi pensieri. Se non lo hai ancora imparato dopo 20 anni, è un mal di testa che non sono sicuro di volere
Dinah,

7
Come mai? Ciò significa che, sebbene abbia così tante funzionalità, puoi continuare a imparare, ma non devi impararle tutte per essere più produttive.
Arda Xi,

5
"Perché, oh PERCHÉ, quei nuthead usano vi ?." - Buon collegamento, soprattutto per la domanda

184

Potrei vivere senza di essa? Facilmente.

È utile? Sì.

Ragioni per l'apprendimento

  • vi è garantito che esiste su tutti i sistemi Unix ed esiste anche su molti Linux. Quel tipo di ampia copertura rende l'apprendimento ne vale la pena.

  • È molto più veloce usare vi per una sudomodifica:

    $ sudo vi

  • Inoltre, GMail utilizza i comandi vi-ish per selezionare e spostare le e-mail in giro!

Non devi essere un maestro.

Basta imparare

Le basi:

  • Come passare dalla modalità comando alla modalità inserimento i
  • Come passare dalla modalità di inserimento alla modalità di comando Esc
  • Come navigare su una linea in modalità comando k
  • Come navigare lungo una linea in modalità comando j
  • Come navigare a sinistra di un personaggio in modalità comando h
  • Come navigare a destra un personaggio l
  • Come salvare un file :wEnter (scrivere)
  • Come uscire senza salvare (in modalità comando) :q!Enter
  • Come annullare u
  • Come ripetere Ctrl+r
  • È possibile combinare la scrittura e l'uscita (in modalità comando): :wqEnter

Da lì il resto ti renderà più veloce.


Ho sempre usato "vi è facile; usi il tasto ell per spostare il cursore a destra" come un modo umoristico (spero) di introdurlo. Ma lo sto usando da molto tempo e non sarei senza. Non posso chiedere più di 25 anni per un'altra coppia, tuttavia, quindi nessuna nuova risposta da parte mia.
Jonathan Leffler,

16
È così che l'ho imparato. Inizia con il minimo e costruiscilo un po 'ogni giorno. Prenditi il ​​tempo per imparare un modo leggermente migliore per raggiungere un compito. Vedi le "7 abitudini di modifica del testo" per ispirazione.
Ben

Gmail, le scorciatoie da tastiera di ricerca sperimentale di Google, le scorciatoie da tastiera di Slashdot, man e meno, usano tutti i bind come Vim. Mi ha sorpreso scoprire di averli imparati per caso senza conoscere VIM! Anche Firefox utilizza / per la ricerca incrementale (con semantica leggermente diversa da Ctrl + F).
Adam Rosenfield,

29
[:] [X] [Enter] è uguale a [:] [W] [Q] [Enter]
Vitalii Fedorenko

20
[Z] [Z] è uguale a [:] [X] [Enter]
Kos

138

Correre attraverso Vimtutor mi ha richiesto solo 30 minuti, il che era abbastanza per familiarizzare con Vim. Ne è valsa la pena ogni secondo.


Se conosci un link esplicativo migliore, cambia il mio :)
Blorgbeard esce il

43
vimtutor è esattamente questo, un tutorial. L'ho fatto ogni giorno per circa 10 giorni. La prima volta mi ci sono voluti circa 30 minuti, il giorno successivo 20, poi 15. Alla fine della settimana, avevo quasi tutto il suo comando impresso nella mia mente. Penso che piuttosto che cercare di memorizzare, la ripetizione sia il modo migliore per avvicinarsi a Vim. 15 minuti ogni giorno per una settimana sembra un prezzo davvero contenuto.
Michael Ekoka,

28
Che dire una volta che avremo finito con VIMTUTOR? Qual è il prossimo passo per saperne di più?
privatehuff


1
Wow! questo era come uno di quegli oggetti nascosti in un gioco. Era proprio lì nel mio sistema e non sapevo che esistesse. Uno dei tutorial più utili e veloci di vim. Usando vim per un po 'ho ancora imparato un paio di trucchi di base che non conoscevo. consigliato a tutti. Anche un piccolo suggerimento: se stai usando VIM su un laptop che ha un touch pad e supporta i gesti, disabilitalo prima di usare Vim perché se toccato accidentalmente può spostare il cursore in luoghi inaspettati a volte sprecando un'intera buona modifica.
Barracuda,

69

Se sei un programmatore che modifica molto testo, è importante imparare un editor di testi serio. L'editor di testo serio che impari non è estremamente importante e dipende in gran parte dai tipi di ambienti in cui ti aspetti di modificare.

Il motivo è che questi editor sono altamente ottimizzati per eseguire i tipi di attività che farai molto. Ad esempio, considera di aggiungere lo stesso bit di testo alla fine di ogni riga. Questo è banale in A Serious Text Editor, ma altrimenti ridicolmente ingombrante.

Di solito vengono considerate le caratteristiche killer di vim: A) che è disponibile praticamente su ogni Unix che incontrerai mai e B) le tue dita molto raramente devono lasciare la riga home, il che significa che sarai in grado di modificare il testo molto, molto rapidamente . Di solito è anche molto veloce e leggero anche quando si modificano file di grandi dimensioni.

Ci sono molte alternative, tuttavia. Emacs è l'esempio più comune, ovviamente, ed è molto più di un semplice editor di testo avanzato se lo approfondisci davvero. Sono personalmente un utente di TextMate molto felice ora dopo anni di utilizzo di vim / gvim.

Il trucco per passare a uno di questi è costringerti a usarli nel modo in cui erano destinati. Ad esempio, in vim, se stai eseguendo manualmente ogni passaggio in un processo in più passaggi o se stai usando i tasti freccia o il mouse, probabilmente c'è un modo migliore per farlo. Ferma quello che stai facendo e cercalo.

Se non fai nient'altro, impara i controlli di navigazione di base sia per Vim che per Emacs poiché si aprono ovunque. Ad esempio, puoi usare i controlli in stile Emacs in qualsiasi campo di input di testo in Mac OS, nella maggior parte delle shell Unix, in Eclipse, ecc. Puoi usare i controlli in stile vim nel comando less (1), su Slashdot , su gmail , eccetera.

Divertiti!


7
Questo ha un punto in cui molte persone trascurano. Quasi ogni attività ripetitiva ha una scorciatoia. Gli sviluppatori adorano le scorciatoie. Come ha detto rbright, se ti ritrovi a eseguire ripetutamente un passaggio, fermati e vedi se qualcuno ha già documentato una scorciatoia.
AvatarKava,

A) è stato uno dei motivi principali per cui ho usato VIM: inizialmente ero un ragazzo di emacs, ma non tutti i sistemi lo avevano ed era lento a volte sulla rete o su server occupati. VIM è onnipresente, piccolo e veloce.
jpeacock,

3
Il mio editor fa costantemente battute sbagliate. Dovrei cambiare.
Greg Graham,

Mi avevi "Se sei un programmatore che modifica molto testo, è importante imparare un editor di testi serio". La parte peggiore è che sembra impossibile imparare due (molto meno di più) dentro e fuori, quasi per definizione. Stai studiando casi limite ad un certo punto e la conoscenza di come eseguire il Task X in uno di solito non si traduce. E ci sono sempre cose che faccio negli editor "marginali": uso ancora JEdit per JTidy, Code2HTML, per cercare più file, ad es. Il tuo principale è un tiro di dadi, e non c'è proiettile d'argento, ma sì, impara assolutamente uno e gioca con molti. ; ^)
ruffin,

1
@ruffin È vero, non puoi davvero padroneggiare due editor diversi allo stesso tempo: se padroni di un editor, utilizzerai molti dei suoi comandi inconsciamente , e ciò significa che molto probabilmente proverai a usare il stesso comando quando si utilizza l'altro editor. Quante volte ho maledetto il mio browser per non avermi permesso di correggere i rientri con un semplice <esc> >i{... È davvero lo stesso che con la digitazione tattile: impari un layout di tastiera e ti attieni perché non sarai mai in grado di fermarti le dita dal digitare i tasti sbagliati su un layout diverso.
cmaster - ripristina monica il

36

È sicuramente vale pena.

C'è una ragione ovvia che qualcuno che usa te Vi(m)lo dirà, e altri due che la gente sembra non menzionare mai.

Ecco quello ovvio:

  1. vi è allo stesso tempo onnipresente e incredibilmente potente, e imparandolo una volta, ottieni la capacità di esercitare quel potere praticamente su qualsiasi computer che abbia una tastiera.

E questi sono i motivi meno conosciuti per imparare Vim:

  1. Non è la metà dello sforzo che pensi che sarà. Esegui il tutor Vim una volta ( vimtutorin una shell o in Windows eseguilo dalla cartella Vim nel menu Start) e sarai già sulla buona strada per la competenza, e da lì è tutto in discesa. Ero al livello in cui avrei potuto usare Vimsul lavoro senza subire alcun notevole aumento della produttività in meno di una settimana di pausa pranzo.

  2. È divertente ! Modificare il testo è come un gioco per me adesso. Mi piace attivamente - il che è piuttosto ridicolo, quando ci pensi.

Ci sono anche due buoni motivi per non imparare Vim:

  1. È avvincente e ti ritroverai a desiderare di poter usare i Vimcomandi in tutto il tuo computer e imprecare quando non puoi. Fortunatamente, almeno per alcune situazioni, ci sono modi per aggirare questo .

  2. Ancora una volta, crea dipendenza e, sebbene non perderete alcuna produttività dall'uso reale, perderete Vimore a cercare buoni consigli per Vimmigliorare la vostra esperienza e leggere il tag Vim su Stack Overflow.


12
Haha numero 2 per motivi "non" per imparare VIM è così giusto. Per tutto il tempo che salvo la modifica del testo, passo la lettura sulla modifica del testo. Ridicolo.
Karl Floersch,

Sì, avrei voluto giocare a valle stardew con hjkl ...
xis

32

Vale sicuramente la pena imparare sia con Vim che con Emacs. Vale anche la pena imparare a toccare il tipo. In entrambi i casi i motivi sono gli stessi: il tuo modo di pensare non è più interrotto dal processo meccanico di trasmissione del codice sullo schermo .

Per quanto riguarda come iniziare, immergiti e inizia a utilizzare vim per tutto.

PS Il dibattito su emacs-vs-vi è infinito. Uso emacs da 26 anni. Se ricominciassi oggi imparerei vim perché (a) è migliorato e (b) ci sono molti meno tasti modificatori (Ctl-Alt-V, chiunque) e gli utenti di vim sembrano avere molto meno infortuni durante la digitazione.


RSI è l'unico rischio professionale degli sviluppatori. Non ci ho mai pensato in questo modo, ma scommetto che questo è davvero un buon punto. È molto più difficile digitare gli accordi dal punto di vista muscolare. Sapevo che c'era un motivo killer per usare vi!
DigitalRoss,

1
Ho usato entrambi, sono stato "battezzato" con Vim e ho imparato emacs alcuni mesi fa. Preferisco vim perché le attività sono interrotte: stai modificando o inserendo, non facendo entrambe le cose. Questa distinzione mi aiuta a pensare a quello che sto facendo, oltre a rendere i comandi "normali" 1-2 tasti, anziché 2-4. Vorrei solo che VIM fosse basato su Lisp (e no, la modalità Viper non supporta tutte le mie funzionalità standard di VIM. Sì, potrei lanciarne una mia, ma poi mi mancheranno ogni volta che toccherò un nuovo computer / sistema)
Wayne Werner

1
@WayneWerner Sono davvero obsoleto, ma puoi controllare la versione di tutti i tuoi elisp in modo da poterli sincronizzare attraverso i computer.
YuriAlbuquerque,

@YuriAlbuquerque, in realtà ho iniziato a pensare molto seriamente alla creazione di uno script di installazione di auto-ambiente, mantenendo tutti i miei dotfile su github o qualcosa del genere.
Wayne Werner,

17

È possibile ottenere una buona funzionalità di vim imparando il significato di soli 16 tasti: ijkdbw9:q!%s/nNEsc. Puoi fare le ossa nude con solo i:wqEsc.

I primi due tasti che devi conoscere sono: Escti porta in modalità comando (la modalità in cui inizi) e iti porta in modalità inserimento (digitazione normale).


Per salvare è necessario

  1. uscire dalla modalità di digitazione ( Esc)
  2. digita i due punti :
  3. digitare minuscolo wquindiEnter

Per salvare e uscire è necessario

  1. uscire dalla modalità di digitazione ( Esc)
  2. digita i due punti :
  3. digitare minuscolo wqquindiEnter

Per non salvare e forzare l'abbandono è necessario

  1. uscire dalla modalità di digitazione ( Esc)
  2. digita i due punti :
  3. digitare minuscolo q!quindiEnter

Per saperne di più puoi eseguire vimtutordalla riga di comando. È una lezione di media lunghezza e ben strutturata.

Oltre ie Esc: è possibile replicare o superare solo alcune funzionalità di MS Word jkwbd3:%s/nN.

  1. bti riporta indietro di una parola ( Ctrl+ )
  2. wti porta avanti di una parola ( Ctrl+ )
  3. 9w ti porta avanti di nove parole
  4. dbelimina la parola precedente ( Ctrl+ Backspace)
  5. d3b cancella tre parole precedenti
  6. 9j si sposta in basso di 9 righe
  7. / ornithopter Enterporta alla prossima istanza della parola "ornitottero", quindi ne Nalla successiva e precedente occorrenza di "ornitottero" rispettivamente.
  8. :%s/confounded/dangfangled/ Entersostituisce "confuso" ogni "confuso" (come find and replace allin MS Word)

Ognuno di questi dovrebbe essere eseguito in modalità "comando" ( Esc), non inserire mode ( i).


16

Di recente sono passato a VIM e penso che ne valga la pena. Se hai bisogno di "fare qualcosa", puoi sempre rimanere in modalità insert, dove vim è (principalmente) come un normale editor di testo.

Ho notato che cose che non mi hanno disturbato, come cercare i tasti freccia, ora sembrano sbagliate e troppi sforzi. Ha decisamente ridotto il movimento della mano e l'uso del mouse, il che è positivo sia per l'ergonomia che per la produttività


12

Dipende da cosa vuoi fare con VIM. Non ha senso impararlo solo perché molte persone non possono vivere senza di esso.

Quando lavoravo molto su ambienti UNIX, non potevo vivere senza di essa. Anche quando VIM non era installato su una macchina UNIX, potevo almeno usare vi. Puoi sempre contare su di esso, anche se la macchina non è tua (quella del cliente).

Ora programma in C # e lavoro principalmente su ambiente Windows. Ho installato VIM sul mio PC ... e non ne ho bisogno.

Valuta se hai davvero bisogno di VIM e se ti supporta nel tuo "flusso di lavoro". Provalo. Giocaci. Se pensi di averne bisogno, atteniti ad esso ... la curva di apprendimento è molto ripida.


Esiste un'estensione di Visual Studio per gli utenti VIM, vederla su visualstudiogallery.msdn.microsoft.com/…
yoel halb

10

Ho imparato vi perché dovevo.

Il mio insegnante pazzo ci ha costretti a imparare a programmare in C usando un terminale su un sistema AIX.

È stato un vero dolore, ma ne vale la pena.

Oggi uso solo vi per modifiche rapide o piccoli programmi.

Quando devo andare per un progetto, preferisco usare e IDE. Nel mio caso l'idea IntelliJ è molto brava nel compito, perché posso programmare per ore senza afferrare il mouse.

Non so quante scorciatoie ha VS2008, ma se sono rilevabili come Eclipse, penso che tu sia nei guai, vai per vi.

Se NON modifichi il codice al di fuori dell'IDE e il tuo IDE ha delle buone scorciatoie, è meglio che tu le impari e poi vai e impari vi comunque.

:)


Ha chiesto i vantaggi di VIM non un'opinione.
Blaze349,

@ Blaze349 no, mi ha chiesto di ascoltare le persone su come lo ha imparato (vedi il post originale qui) che è esattamente quello che ho risposto. Questa domanda ha quasi 8 anni ed è stata sottoposta a diverse recensioni nel corso degli anni, la mia risposta corrisponde a quella originale. Prendilo in considerazione mentre commenti.
OscarRyz,

9

Ho usato vi / vim per 25+ anni. Se conosci già qualche editor da riga di comando, forse non hai bisogno di imparare vi / vim. Ma se non conosci molto bene altri editor della riga di comando, vale la pena impararlo. È abbastanza facile essere produttivi in ​​vi / vim con poco sforzo.


6

Uso VIM praticamente esclusivamente ora.

Usavo Vim per l'editing e VS Editor per il debug. Questo probabilmente sembra un po 'folle, ma ho trovato il paradigma Vi (macro, editing basato su chiavi di casa ecc.) Un tale impulso alla mia produttività, che l'editing in VS è stato brillante.

Grazie a Viemu , non devo nemmeno più fare il cambio. Non è ancora la soluzione perfetta (il completamento del codice a volte non è così elegante come in Vim nativo e la registrazione delle macro non è perfetta), ma è molto meglio che passare avanti e indietro costantemente.

La curva di apprendimento di Vim è probabilmente esagerata. Penso che una volta che ci entri, è abbastanza intuitivo.


5

Il mio lavoro mi ha costretto a raccogliere VIM ed è rapidamente diventato una seconda natura. Ora le mie lamentele riguardano gli IDE che non hanno emulazione o plug-in Vim. Noto che la chiave esc è diventata il mio nemico al di fuori di Vim.

Ho trovato diversi emulatori per vi in ​​Visual Studio:

http://code.google.com/p/vim-visual-studio/


4

In primo luogo una buona conoscenza di vi (m) ti farà risparmiare il tempo che devi fare per eseguire la modifica di emergenza dei file di configurazione su un server sotto sequestro. Può reggere una connessione ssh ritardata.

Amministrare le cose a parte il metodo di input di vim sarà la migliore difesa contro il tunnel carpale se lo si utilizza in modo efficace con una tastiera ergonomica.

Il modo migliore per vedere il punto di vim è avviare un progetto casual a casa, scollegare il mouse e il nastro sui tasti freccia.

E leggi l'aiuto


4
Trovo anche il modello di input Vi ottimo per difenderti dalla sindrome del tunnel carpale ...
CMS

tasti freccia? prova nel tuo .vimrc: map <up> <nop> map <down> <nop> map <left> <nop> map <right> <nop> imap <up> <nop> imap <down> <nop> imap < left> <nop> imap <right> <nop>
sjas,

1
Vorrei solo sottolineare che c'è nano molto di più facile da usare rispetto a VIM, ed è quasi altrettanto diffuso.
MightyPork,


4

Sto mantenendo un progetto Linux molto grande sul computer remoto. Non è possibile utilizzare Eclipse o un IDE simile basato su GTK. Lavoro lì da 3 anni. E ho impostato il mio vim solo per questo progetto. E ancora modificando.

Ora posso fare qualsiasi cosa da Vim: controllo del codice sorgente, sql, debug, compilazione, navigazione - navigazione davvero veloce su codice sorgente da 1Gb.

Visual Studio o Eclipse non sono stati in grado di gestire tutto ciò. E se avessi una scelta non cambierei Vim con un altro editor o IDE.


4

Ho imparato Vim. Non è stato un grande sforzo. Ora adoro assolutamente ci "ci (cw V: s / da / a / g


3

Direi che vim vale sicuramente la pena imparare. L'ho raccolto l'estate scorsa, ed è ora il mio editor preferito per quasi tutto (java è un tratto, ma fattibile quando non ho bisogno di un ampio supporto di analisi). Come tutti hanno già affermato, è uno strumento meravigliosamente efficiente.

Per quello che vale, ho appreso solo un sottoinsieme abbastanza piccolo delle funzionalità di Vim (che ha richiesto un giorno o due) da un tutorial grafico , e da qui alcune probabilità e fine (lettura lunga), e la funzionalità di ricerca e sostituzione, e io è stato agganciato. Da allora ho imparato cose, ma a mio piacimento. Direi che la curva di apprendimento si appiattisce a questo punto, ma poi la stavo usando abbastanza pesantemente ed ero circondata da altri che erano anche loro.


3

Sono nella tua stessa situazione, e come principiante di Vim inizialmente l'ho trovato un po 'scoraggiante: la curva di apprendimento sembra ripida. Da quello che ho imparato in poche ore mi sento già come se non sarei in grado di vivere senza di essa.

Qui ci sono un paio di link che ho trovato per utili screencast Vim per mostrare che cosa è capace.

Un buon consiglio che Bram Moolenaar (benevolo dittatore di Vim) ha dato all'ultimo link è che sarebbe inefficace cercare di imparare ogni singolo comando e funzione, solo capire cosa stai facendo che non lo è funziona molto bene, cerca un modo per renderlo più efficiente e poi renderlo un'abitudine.


3

Sì, sicuramente prenditi il ​​tempo per imparare almeno un po 'di' vi 'e' vim '. Viaggia molto bene.

Non sarai mai bloccato quando ti trovi di fronte a un sistema Unix / Linux / Mac per il quale non hai capacità di installazione. Anche su Windows (se si dispone di funzionalità di installazione) 'Vim' è gratuito e facile da installare. (Al contrario di investire la tua curva di apprendimento esclusivamente in qualcosa come UltraEdit, che sebbene un eccellente editor potrebbe non essere sempre disponibile per te ...).

Imparare vi può prepararti ad apprendere altri strumenti come 'sed' e regex in generale: cose che sono generalmente trasferibili.

Inoltre, se vuoi essere un vero geek, devi semplicemente conoscere 'vi / m' o sembrerai un falso ;-)


2

Penso che valga sicuramente la pena dedicare tempo e fatica ad imparare Vim. Per me, rende la digitazione e la navigazione all'interno del testo così efficiente, è difficile immaginare di tornare a emacs o combinazioni di tasti ctrl / shift / alt / meta.

Non lasciarti intimidire da tutte le fantasiose funzionalità di Vim. Dopo averlo usato abbastanza, capirai quali comandi usi di più e capirai quali cose puoi dimenticare.


2

La straordinaria ubiquità di Vim e l'ubiquità ancora più sorprendente dei cloni Vi in generale, sui soli sistemi Unix sono sufficienti per far valere la pena di imparare.

Oltre a ciò, l'intero pensiero in stile Vi è qualcosa che penso davvero mi abbia reso un po 'più produttivo. Per una persona che non è abituata a modalità come la modalità di comando e la modalità di inserimento, sembra un po 'eccessivo dover inserire una modalità solo per inserire del testo. Ma, quando si usa Vim da alcuni mesi e ha imparato parecchi trucchi e suggerimenti, Vim sembra essere una risorsa che sembra valerne la pena.

Naturalmente, la folla di Emacs dice la stessa cosa riguardo al pensiero in stile Emacs, ma ho rinunciato a imparare Emacs perché Vim era più semplice e ha fatto il lavoro per me.


2

Ho imparato ad apprezzare vi dopo aver visto qualcuno che era molto abile mentre navigava per apportare modifiche in una clip follemente veloce. Puoi davvero programmare rapidamente con esso. Un'altra ragione per cui mi piace è che a volte trovo che il mouse in giro in un IDE mi fa davvero male le mani dopo un po 'e vi fornisce un bel cambiamento. Come altri hanno già detto, è anche quasi sempre disponibile su sistemi unix e funziona bene anche su connessioni scadenti.

Una cosa che non ho visto menzionato è che conoscere vi ha l'ulteriore vantaggio di "geek cred" in alcuni ambienti. Mi vengono in mente almeno alcune persone che ridacchiano quando vedono un nuovo programmatore accendere nedit per apportare alcune modifiche a un file.


2

Non essere spaventato dal numero di comandi, non ho incontrato nessuno che ne usasse più di una dozzina al massimo. Lo trovo indispensabile, perché quando sto pensando al codice sto pensando al testo, passare a pensare ai topi mi fa solo incasinare. I trucchi più importanti, penso, sono di impararlo un po 'alla volta e non esitare a giocare - le funzionalità di annullamento sono grandi per esplorare i suoi comportamenti.

Inoltre, se ti addentri profondamente, vim è programmabile. Le possibilità sono letteralmente infinite.

(Sì, tutto questo vale anche per emacs ...)


2

Ero felice con il mio textpad e il mondo ecplise fino a quando non ho dovuto iniziare a lavorare con i server in esecuzione su Linux. Era necessario lo scripting remoto e l'impostazione dei file di configurazione!

All'inizio è stato difficile, ma ora posso facilmente impostare e ottimizzare i miei server.


2

Potresti voler imparare Vim perché potresti non essere soddisfatto degli editor che stai già utilizzando.

Potresti voler imparare VIM perché molte persone dicono che è bello. Guarda quante risposte hai a questa domanda.

Fornirò un motivo aggiuntivo per l'apprendimento di VIM. Ha una reputazione per la qualità e la completezza dei suoi documenti. Quindi troverai la maggior parte delle risposte alle tue domande nel suo sistema di aiuto non appena riuscirai a mettere le parole chiave appropriate nelle tue domande di aiuto.


2

Per imparare velocemente vi (m) bisogna prima capire l'intero progetto. Vim ha una grande serie di comandi di movimento del cursore, controlla alcuni (X è un carattere, # una cifra):

jk inserisci le frecce 0 $ w W b B ctrolD crtolU ctrolE ctrolY HML fX FX tX TX,; % gg G n N mX 'X' '

e molti altri sarebbe noioso enumerare. Molti di questi supportano un conteggio prima del comando, come 4j per spostare 4 righe in alto.

Ora, tornando al disegno, digiti un comando come d per cancellare seguito da un movimento del cursore e il comando si applica al pezzo di testo dalla posizione del cursore fino alla fine del movimento. Ad esempio, H si sposta nella parte superiore dello schermo, dH viene eliminato nella parte superiore dello schermo e cH cambia (sostituisce) nella parte superiore dello schermo.

Questo design è abbastanza potente. Riduce anche o organizza ciò che devi imparare. Sicuramente il primo passo è imparare alcuni comandi di movimento del cursore. Di '8 o 10 all'inizio. Allora hai quasi finito.


2

Imparare qualcosa di nuovo vale sempre la pena, IMHO. Ti suggerisco di stampare un cheat sheet e sforzarti di usarlo giorno dopo giorno.


C'è una storia in cinese che dice che qualcuno impara da un insegnante a macellare draghi. Una volta laureato, non trova mai veri draghi da macellaio. Non sto dicendo vi, ma è la morale di questa storia che a volte imparare qualcosa è solo una perdita di tempo.
Earth Engine,

2

Vim vale sicuramente la pena imparare a sintetizzare in parte ciò che è stato affermato in precedenza qui sono i motivi principali:

  • Vi / Vim può essere trovato sulla maggior parte dei sistemi unix.
  • Vim ti consente di programmare facilmente senza togliere le mani dalla tastiera.
  • Se prevedi di configurare qualcosa con una probabilità di sistema basata su unix, stai per modificare alcuni file di configurazione, quindi vorrai imparare un editor basato su terminali, di cui vim è uno dei migliori (mi dispiace emacs).
  • Vim compila / ha binari precompilati per quasi tutti i sistemi operativi in ​​circolazione. Non c'è bisogno di pubblicare "Ho bisogno di un'alternativa testuale per [inserire OS]", invece avrai Vim!
  • Ci sono molti buoni plugin là fuori per aggiungere un sacco di funzionalità, come le differenze cvs nell'editor, anche se alcuni di questi richiedono una buona dose di armeggiare.

Inoltre, se ti piacciono i collegamenti ai tasti Vim, ci sono anche IDE che includono i collegamenti vim nei loro editor per comandi semplici, ad esempio Komodo Edit .

Per informazioni sull'apprendimento di Vim, prova a digitare "vimtutor" nel tuo terminale e segui le istruzioni. C'è anche un libro che è particolarmente buono Hacking Vim


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.