it-swarm.it

Qual è il modo migliore per forzarti a padroneggiare vi?

Molto tempo fa, ho letto n articolo del creatore di Viem , chiarendo molte idee sbagliate su vi, oltre a spiegare perché è una buona idea (e perché è stata molto popolare per ultimi 30 anni +). Lo stesso ragazzo ha anche n grande set di cheat sheet grafici che insegnano le basi un paio di bit alla volta.

Sono convinto.

In effetti sono stato convinto negli ultimi 2 anni. Ma ancora non mi sono ancora dato da fare per costringermi ad imparare vi come editor principale, la curva di apprendimento è troppo alta. Quando mi metto al lavoro, la produttività accettabile ma immediata (usando il mio attuale editor) ha finora conquistato un'enorme produttività più in là (usando vi).

Qualcuno ha qualche buon consiglio per aiutare a superare la curva di apprendimento? Può essere chiaro suggerimenti, qualche altro tutorial o articolo, qualunque cosa.

Modifica: nota che sono a conoscenza delle varianti vim/gVim , Cream e MacVim (ecc.) Di vi. Ho mantenuto la mia domanda su vi per riferirmi alla famiglia vi nel suo insieme. Grazie per tutte le ottime risposte.

Aggiornamento (aprile 2009)

Sto usando Vim (più precisamente, MacVim) nella mia vita professionale quotidiana dallo scorso dicembre. Non torno indietro :-)

Buona fortuna a tutti nella loro padronanza di Vim.

202
webmat

Prima di tutto, potresti voler prendere Vim; ha una funzionalità di gran lunga superiore insieme a tutto ciò che vi ha.

Detto questo, ci vuole disciplina per imparare. Se hai un lavoro e non puoi permetterti il ​​colpo di produttività (senza essere licenziato), ti suggerirei di intraprendere un progetto per il fine settimana al solo scopo di imparare l'editore. Tieni aperta la sua documentazione mentre lavori e sii abbastanza disciplinato da non smanettare. Man mano che impari di più, diventi efficiente e inizi a fare affidamento sulla memoria muscolare, non sarà così difficile mantenerlo.

Uso Vim da così tanto tempo che non penso nemmeno a quali tasti premere per cercare, navigare o salvare. E le mie mani non escono mai dalla tastiera. Utilizzare Vim è una delle migliori scelte che ho fatto nella mia carriera di programmatore.

124
Lucas Oman

La prima cosa che farei è posare un pezzo di carta o un libro sui tuoi tasti freccia e sui tuoi tasti ins/home/end/pgup/down. Quelli non sono necessari in Vi.

Quindi mi abituerei a premere ctrl + [ogni volta che ti viene detto di colpire la fuga. È molto più veloce e non dovrai togliere le mani dalla tastiera.

Quindi guarderei i miei screencast:

http://www.youtube.com/watch?v=FcpQ7koECgk

http://www.youtube.com/watch?v=c6WCm6z5msk

http://www.youtube.com/watch?v=BPDoI7gflxM

http://www.youtube.com/watch?v=J1_CfIb-3X4

Quindi, pratica solo pratica pratica.

modifica Il motivo per evitare i tasti freccia è che ti rallentano. Uno dei maggiori vantaggi di Vim è la velocità che ti consente. I tasti freccia ti impediscono anche di abbracciare davvero la natura modale, che è molto potente se padroneggiato.

64
Aaron Jensen

Passaggio 0: impara a toccare il tipo. Scherzi a parte - se le dita non sanno dove sono le chiavi, allora Vim sarà un dolore. E anche se rifiuti Vim, la digitazione a tocco migliora la tua programmazione (chiedi Steve Yegge ) rendendo la mente libera di monitorare l'attrito del collegamento. C'è un lotto di software che può aiutarti a migliorare la digitazione.

Passaggio 1: usa vimtutor per iniziare. È in gvim (sotto il menu di aiuto credo) o puoi semplicemente digitare 'vimtutor' dalla riga di comando. Ci vorranno 30-45 minuti del tuo tempo e poi le tue dita conosceranno le basi di vi/vim e dovresti essere in grado di modificare i file senza voler scagliare la tastiera dalla finestra.

Passaggio 2: usa vim ovunque. Vedi questa domanda per suggerimenti e collegamenti per l'uso dei tasti di scelta rapida vim e vi dalla riga di comando, dal tuo browser web, per la composizione di e-mail, nel tuo IDE ... È necessario utilizzare vim per incorporare le associazioni chiave nella memoria muscolare.

Passaggio 3: ulteriori informazioni su vim. Avrai solo graffiato la superficie con vimtutor. Puoi guarda questo video o leggi questo articolo (entrambi sulle "Sette abitudini di un efficace editing di testo". Puoi leggi su suggerimenti e trucchi su StackOverflow . Puoi sfogliare vimtips . Imparare un po 'spesso sarebbe il mio consiglio - c'è così tanto lì che attenersi a bocconcini di dimensioni ridotte sarà il modo migliore per far rimanere la conoscenza.

Passaggio 4: Profitto :)

37
Hamish Downer

Sono stato un utente on-again, off-again di vim nel corso degli anni (facendo occasionalmente il lavoro di amministratore di sistema). Di recente ho iniziato a dedicare più tempo a svolgere il mio lavoro di programmazione. Suggerirei di iniziare anche con gvim. Si integra bene con la maggior parte degli ambienti del sistema operativo e (anche meglio), è possibile ricorrere al mouse quando è necessario :).

Per iniziare con vim, corri attraverso il vimtutor (in bundle con gVim) una o due volte (impiega circa un'ora). Non posso esagerare su quanto sia stato utile per me! Soprattutto le prime parti sui diversi modi di spostarsi all'interno di un documento e su come le azioni di modifica vengono registrate con comandi di movimento, ecc. Ecc. Successivamente, le cose saranno MOLTO più chiare.

Quindi, inizia a fare modifiche rapide e minori con esso (roba di sostituzione del blocco note) 'fino a quando non ti senti abbastanza a tuo agio da effettuare utili modifiche in una clip rapida. Quindi prova a fare il tuo lavoro quotidiano. Ti ritroverai ad agitarti per il comando "ripeti ultima azione" in altri editor in pochissimo tempo!

26
Brian

Hai chiesto buoni consigli per aiutarti a superare la curva di apprendimento sull'editor di testo vi. Molte delle risposte precedenti suggeriscono di non utilizzare altri editor. Penso che sia un buon consiglio. Il passaggio a vi da un editor più grafico richiede un cambio di mentalità. Richiede pensare in termini di comandi, piuttosto che cambiamenti visivi.

Ho usato nient'altro che vi per molti anni e credo che l'unico modo in cui puoi essere produttivo sia memorizzare i comandi che usi regolarmente. Il modo in cui l'ho fatto è stato quello di fare un breve elenco dei comandi da tastiera più comuni. Ho raggruppato e codificato a colori questi comandi in base alla funzione, ovvero Spostamento del cursore, modifica, ricerca , ecc. Ho fatto attenzione a includere solo i più comunemente usati comandi che non conoscevo. L'idea è quella di creare un riferimento rapido che sia anche un aiuto nella memorizzazione, non di sostituire le schermate di aiuto disponibili. Quindi ho stampato questo elenco e l'ho registrato sul muro dietro il mio monitor in modo da poterlo vedere facilmente. (I cheat sheet grafici che hai citato potrebbero funzionare meglio per alcuni, ma probabilmente sono una fonte di riferimento migliore di uno strumento di memorizzazione.)

Ecco la chiave. Quando mi sono sentito a mio agio con uno dei comandi, ho disegnato una linea attraverso di esso con una matita. Potevo ancora vederlo se ne avessi avuto bisogno, ma era simbolico per me aver padroneggiato quel comando. Ciò mi ha dato fiducia e motivazione poiché ho potuto vedere progressi regolari. Dopo averli cancellati la maggior parte, li ho rimossi e ho aggiunto alcuni dei comandi usati più raramente. Ho continuato questo processo fino a quando non sono stato soddisfatto del mio comando di vi. Sapevo di aver raggiunto quel punto quando mi resi conto di non aver cancellato alcun comando o di aver guardato l'elenco da molto tempo.

Un paio di anni fa avevo bisogno di lavorare su una piattaforma UNIX dove vi era l'unico editor disponibile. Ho comprato un piccolo libro di consultazione tascabile su vi, ma non l'ho quasi usato. Ho finito per fare liste e pubblicarle sul muro come ho fatto la prima volta che ho usato vi. Alla fine della prima settimana, mi sentivo molto a mio agio anche se erano passati cinque anni da quando avevo usato vi.

19
TMarshall

Dovresti iniziare con vim (Vi IMproved) e in particolare la sua GUI - gVim . La GUI ha dei menu e su Windows puoi usare i collegamenti per copiare, tagliare e incollare, in modo da poter sostituire immediatamente Blocco note. E poiché i menu mostrano le scorciatoie (comandi vim) potresti imparare molto.

Un'altra cosa che dovresti fare dall'inizio è configurare vi per le tue esigenze. Ad esempio, puoi trasformare vim in un Python IDE . In questo modo, non avrai scuse per l'utilizzo di un altro editor, perché vi ti offrirà tutto ciò di cui hai bisogno.

11
Cristian Ciupitu

Per me VI è un buon editor di emergenza, ma non qualcosa che voglio usare se ci sono altre alternative disponibili. Mi rendo conto che non è per tutti, però, non sto dicendo che sia orribile o altro, preferisco solo personalmente un'interfaccia utente rilevabile.

Ma devi davvero conoscere VI se fai qualcosa di significativo in Linux!

Quindi impara le basi: i = modalità inserimento esc = lascia la modalità inserimento: wq = salva ed esci: q! = Non salva ed esci x = quando non sei in modalità inserimento, cancella il carattere./= Ricerca

Ciò ti consentirà di superare qualsiasi emergenza di modifica. Non c'è niente che non puoi fare con quei pochi comandi (e la navigazione ovviamente). Il resto si può "affrontare" quando ne hai bisogno.

Tieni comunque a disposizione un riferimento o un libro - quando DEVI usare VI, probabilmente non sarai in grado di navigare sul web - ma la pagina man potrebbe essere in qualche modo utile.

11
Bill K

non forzarti. la strada per padroneggiare l'amore è.

11
jbarciela

elimina tutte le altre app dell'editor di testo.

Quindi dovrai impararlo.

10
Bob Dizzle

Il modo più semplice per forzare te stesso potrebbe essere solo quello di rimuovere tutti gli altri editor dal tuo computer. Sbarazzati della tentazione :)

9
Dana

Ogni volta che esegui un'attività di modifica complessa, continua a chiederti se esiste un modo più efficiente per farlo. La maggior parte delle volte, quando è qualcosa che puoi descrivere in termini semplici (come "scambia paragrafi di testo" o "elimina tutto dopo il carattere X nelle righe commentate"), è qualcosa che puoi fare in un paio di sequenze di tasti in vim.

Ci sono alcune caratteristiche chiave che sono estremamente utili e finirai per usarle continuamente. Quelli che amo di più sono:

  • Selezione blocco (Ctrl-V)
  • Registrazione macro (q)
  • Editing virtuale (: set ve = all)
  • Espressioni regolari
  • Piping a programmi Unix esterni
  • Mappature chiave
  • Completamento automatico (C-p, C-x C-p, C-x C-f)
  • La combinazione operazione + movimento (è incredibilmente potente)

Chiedi agli altri programmatori quali funzionalità trovano più utili e adotta quelli che si adattano meglio al tuo cervello. Ruba idee agli altri .vimrcs ( ecco il mio )

9

EDIT: Ho creato na flashcard impostata sul sito di ripetizione spaziata online flashcarddb.com , nel caso in cui tu sia interessato ...

  1. Utilizzare un programma di schede flash a ripetizione spaziata come mnemosyne , supermemo o anki per incorporare l'apprendimento e il mantenimento di nuovi comandi nella routine quotidiana. Non è sufficiente usare vim come editor quotidiano. Per padroneggiarlo, devi archiviare quei codici nella tua testa, aspettando il momento in cui sono la soluzione ideale per l'attività a portata di mano.
  2. Mantenere un .vimrc con personalizzazioni
  3. Scrivi o modifica un plugin vim
8
P. Myer Nore

Ho scritto una guida a editing efficiente con Vim qualche tempo fa. Potresti trovarlo utile.

Vorrei fare un passo indietro e chiedermi "perché voglio imparare questo editor? Cosa mi fa pensare che sarà più veloce o migliore del mio attuale editor di testo?" Quindi apprendi quelle caratteristiche che renderanno Vi (m) indispensabile per te.

Ad esempio, l'integrazione di CTags di Vim è assolutamente indispensabile per me. Lavoro con una base di codice molto, molto grande, e la possibilità di passare a una definizione di funzione o di classe in una sequenza di tasti (indipendentemente dal file in cui si trova) è una funzione assolutamente killer, di cui non ho difficoltà a lavorare.

Usa il tuo file .vimrc per creare macro che automatizzano le attività comuni.

Il selettore editore del pilota automatico sceglierà l'editor che eseguirà il lavoro più rapidamente e con il minimo sforzo mentale. Un piccolo lavoro preliminare assicurerà che l'editor sia Vim. :-)

8
Jonathan

Due cose che miglioreranno notevolmente le tue abilità vi:

  1. Pratica, pratica, pratica
  2. Nethack
6
Mark Witczak

Il mio consiglio: iniziare in piccolo. Inizia semplicemente memorizzando un piccolo set di comandi più utili. Quando ho iniziato vi, questi erano i miei primi 10:

  • (Esc) per tornare alla modalità di comando (molto importante!)
  • a per aggiungere testo dopo il cursore
  • A per aggiungere testo alla fine della riga corrente
  • x per eliminare 1 carattere
  • dd per eliminare 1 riga
  • R per sostituire il testo (sovrascrivere)
  • per annullare
  • : Q! (Invio) per uscire senza salvare
  • : w (Invio) per salvare
  • ZZ per salvare ed uscire

Molte modifiche di base possono essere eseguite utilizzando solo questi comandi. Una volta che ti senti a tuo agio, il resto non sembra troppo difficile.

A proposito, vorrei aggiungere che mi affidavo a vi per il mio editor di testo principale, ma ora solo se devo. Nel mio caso, la produttività è migliore quando uso strumenti come Emacs o Visual Studio (nota: "nel mio caso"). Prova più di uno strumento e scegli quello che ti aiuta di più alla produttività. In bocca al lupo!

6
Paulus

Sembra sciocco, ma giocare a roguelike giochi (come Nethack o Angband ) è un modo divertente per familiarizzare con l'uso di h/j/k/l per la navigazione del cursore.

5
bk1e

Annota tutte le scorciatoie e le funzionalità che usi nel tuo attuale editor mentre lo usi al lavoro. Quindi siediti sabato mattina e usando Google e lo stack overflow scopri come fare ognuno di quelli in vi. Probabilmente è meglio se usi un foglio (o fogli) di carta per questo.

Ora disabilita/elimina gli altri editor al lavoro in modo che ci vorrà più tempo per trovarli e reinstallarli che guardare il tuo foglio di confronto e farlo in vi - cioè non hai scelta.

Infine, pubblica il tuo elenco di scorciatoie crossover dal tuo vecchio editor al tuo nuovo sul tuo blog.

In bocca al lupo!

4
Guy

Non usare X11?

$ sudu rm /usr/local/bin/emacs

Modificare la Shell di accesso in vi?

Per prima cosa, sforzati di usare ed, quindi vi sembrerà un lusso?

Utilizzare le combinazioni di tasti vi in bash?

Inizia a usare vi sempre?

Mi sembra che l'apprendimento di un editore non sia terribilmente diverso dall'apprendimento di una lingua. L'immersione funziona meglio.

Uso vi per modifiche molto rapide o quando non posso usare X11 per qualche motivo, ma vivo in emacs. I redattori veramente potenti valgono la pena di imparare.

4
Jon Ericson

Il motivo principale per cui utilizzo vi è ssh (o PuTTY su Windows): quando accedi a un server Unix in remoto, vi è sempre disponibile. E funziona con VT100 quando non sono mappati né i tasti cursore né backspace/delete.

Anche avere un libro come VI Editor Pocket Reference aiuta molto.

3
Aaron Digulla

Ricordo quando ho iniziato a studiare emacs, dopo che mi sentivo già molto a mio agio con Vim, ed ero nella stessa o simile barca che eri, dove ho saputo fare molto in un altro editor, così come ho iniziato usando emacs, è stato sempre dolorosamente lento.

Tuttavia, penso che ciò che dovrai fare è solo assorbire un po 'del dolore e sempre, sempre, SEMPRE assicurarti di consultare la documentazione per fare qualcosa che sai puoi nel tuo editor precedente, ad esempio spostandoti alla fine di una riga o selezionando un'area di testo.

Aiuta anche se hai un esperto vi locale a portata di mano che puoi porre domande o se sei come la nostra azienda, promuovi la programmazione di coppie. In questo modo quando stai cercando di fare qualcosa che dovrebbe essere facile, puoi semplicemente chiedere a qualcuno, ti mostreranno come e se usi l'editor regolarmente per alcune settimane, non dovresti chiedere di più poi un paio di volte prima che diventi una seconda natura.

Se non hai risorse locali, ci sono molti libri/tutorial/fogli di riferimento online che dovrebbero essere in grado di rispondere alla maggior parte delle tue domande.

Alla fine, imparare Vi è come apprendere altre abilità, non esiste un proiettile d'argento e dovrete accettare che, per un po ', sarete meno produttivi rispetto al vostro attuale editore. Continua a ripeterti, "Altre persone sono state in grado di imparare Vi, e io sono almeno intelligente come loro" (Questo è quello che mi dico comunque :))

3
ben.prew

La mia raccomandazione è quella di elaborare alcuni semplici programmi e scriverli, iniziare a finire, usando VI.

Le probabilità sono che all'inizio sarai troppo frustrato dalla curva di apprendimento per forzarti a usarli sul lavoro o in qualsiasi ambiente sensibile al tempo.

L'ho già fatto in precedenza per acquisire familiarità con gli ambienti/editor e funziona abbastanza bene.

Se stai riscontrando problemi con le cose da scrivere, ti consiglio di rifare i progetti che hai fatto a scuola (o qualsiasi altra cosa che hai fatto in precedenza). Questo metodo ha l'ulteriore vantaggio di farti vedere quanto di uno sviluppatore migliore sei diventato. :)

Modifica: hai dimenticato di dire che dovresti farlo interamente dalla console per evitare qualsiasi tentazione di usare il mouse!

3
TM.

gVIM ha un ottimo tutorial (link nel gruppo del menu Start).

Ho trovato lavoro che ha contribuito a superare la gobba iniziale di apprendimento; e poi passare da Visual Studio a ViEMU mi ha aiutato ad affinare le mie abilità VI.

Inoltre, gli screencast su http://vimcasts.org/ sono fantastici!

3
David Laing

Potresti voler iniziare con Cream. Cream si definisce "una configurazione moderna" di vim. Fondamentalmente, è una versione speciale di VIM che sembra e si sente come qualsiasi altro editor di testo per tutti gli scopi pratici. Ma abilita la "modalità esperto" e hai tutto il potere e il comportamento di VIM.

Quindi puoi iniziare a usare Cream come un normale editor di testo e quindi sperimentare la "modalità esperto" fino a quando non ti senti abbastanza a tuo agio da passare a vim.

2
sids

Installa gVim su tutte le piattaforme che usi.

Quindi attraversa il vimtutor (:help vimtutor o vimtutor dalla riga di comando).

Guarda la seguente lezione e segui i suoi consigli: 7 Habits For Effective Text Editing 2.

Dico che vuoi assolutamente iniziare a usarlo per tutte le tue modifiche. Se temi una perdita di produttività, prenditi un fine settimana per esercitarti in modo solido (una volta l'ho fatto per passare a dvorak da qwerty e la mia produttività è stata abbastanza elevata entro lunedì e sono riuscito a continuare con esso).

Ne vale la pena e non ti guarderai indietro!

2
user13060

Potresti mettere le mani su una delle tastiere Happy Hacker originali (senza tasti freccia) e mettere il mouse (wireless) fuori dalla portata ogni volta che inizi a modificare.

2
Garth Gilmour

È facile scrivere un grande elenco di comandi/scorciatoie, ma è difficile ricordarli tutti senza pratica.

Concentrati su un nuovo comando alla volta. Quando diventa automatico, dopo averlo usato per una o due settimane, aggiungine un altro al tuo repertorio.

Farai molta strada per realizzare alcune cose a breve termine: queste sono ovvie opportunità per apprendere nuove scorciatoie.

Nella mia esperienza è stato più facile quando ho cercato di non assumere troppo in una volta.

2
Craig Hyatt

Il mio suggerimento numero uno: impara a digitare velocemente, senza bisogno di guardare la tastiera.

Se non riesci a toccare il tipo e cerchi sempre il colon o l'hjkl o:% s/foo/bar, dimenticalo. Digitare può essere più veloce dell'uso del mouse, ma se non è così per te, vi non funzionerà.

Ma combinare buone abilità di battitura, ssh e schermo e vi saranno naturali.

2
Michael Cramer

ESC gg=G per riordinare il codice e :retab per convertire le schede in spazi o spazi in schede era ciò che mi ha agganciato a Vim. Quindi in realtà non devi essere costretto a usarlo, devi solo imparare quando può aiutarti ad aumentare la tua velocità.

Passare attraverso vimtutor.

Inizia a utilizzare vim per semplici modifiche, come file di configurazione o HTML. Impara i comandi di cui hai bisogno.

Cerca su Google un buon .vimrc utilizzato da qualcuno che utilizza una toolchain simile alla tua. Attiva l'evidenziazione della sintassi. Trova una combinazione di colori piacevole.

Scopri le macro perché Vim è il migliore per attività automatizzate e inserimento di frammenti, come la formattazione di poche parole in un tag XML complesso o la conversione di un CSV in una tabella HTML.

2
Eduardo Marinho

Affronta il fatto che creerà un successo immediato nelle prestazioni. Quando impari un nuovo strumento devi essere in grado di fare qualcosa che sai come fare con altri strumenti in modo che il problema non sia il tuo problema. Dopo aver usato il nuovo strumento un po 'scomparirà e ti concentrerai solo sul problema di fondo.

Con qualcosa come vim (come altri hanno già detto, vim è di gran lunga superiore a vi) è importante rileggere e sfogliare periodicamente la documentazione. L'interfaccia è completamente da scoprire senza di essa. Ad ogni nuova lettura vedrai una funzione e dirai "ah ah, che avrebbe risolto questo problema che stavo cercando di capire la scorsa settimana", e lo archiverà nel tuo cervello. Le soluzioni connesse ai problemi del mondo reale che hai avuto sono molto più facili da ricordare delle scorciatoie casuali.

Alla fine puoi usare Vim con un sottoinsieme abbastanza piccolo delle sue caratteristiche, quindi non lasciarti sopraffare da tutte le campane e fischietti. Pensa a tutte le funzionalità di Word, il 99% delle persone le usa?

2
Matt Price

Quando ero molto più giovane (undici anni), la mia famiglia si trasferì in Germania per un paio d'anni. Sono stato in grado di imparare la lingua per immersione - semplicemente non avevo altra scelta che parlare la lingua (anche se se fossi in una situazione terribile avrei potuto trovare un madrelingua inglese).

Il mio suggerimento è di fare lo stesso, a meno che non ci si trovi in ​​una situazione assolutamente disperata (ad es. "Ok, ho appena cancellato/etc/passwd e ho bisogno di rimettere in sesto"), prendere la decisione consapevole di fare del tuo meglio con vi. In realtà non ci vuole molto tempo per imparare le basi, se vuoi.

Come altri hanno suggerito,

vim-tutor

può essere un ottimo punto di partenza, come può questa immagine .

1
cjmac

Usa il metodo post-it :-)

Quando usi gvim, consenti a te stesso di usare i menu. Leggi un libro/tutorial su Vim in modo da conoscere le basi. (modalità inserimento e comando)

Seleziona alcune funzioni davvero interessanti che ritieni necessarie e scrivi quelle sulle note di post-it e poi attacca quelle sulla parte inferiore del monitor.

Un buon inizio è probabilmente io, a, o, gg, G,: 10,/qualcosa

e alcuni taglia e incolla come yy, dd, p

e basta completare con v, V (la modalità visiva) + taglia e incolla

Quindi, quando li conosci, sostituiscili sul post-it con uno nuovo con una funzione ancora più interessante e ripeti finché non sei soddisfatto.

/ Johan

1
Johan

Come forzarti? Il mio consiglio è di essere in un ambiente di lavoro in cui è necessario mantenere 10 caselle unix telnetting/stucco da Windows. Ti accorgerai rapidamente che l'unico modo per modificare in modo efficiente il testo su più varianti di * nix è utilizzare un editor standard fornito con quasi tutte le distro che conosco. Inoltre, quando X11 non si avvia su una nuova installazione, vi è il tuo unico amico :)

1
Excalibur2000

Ho imparato vim/vi oltre dieci anni fa quando stavo facendo i miei padroni. Allora l'unica macchina a cui ho accesso sono le stazioni Sun Sparc (credo Sparc 20). E vi è l'unica cosa che c'è sopra. Quindi una cosa che puoi fare per "forzarti" è disinstallare qualsiasi altro editor che hai!

1
lang2

Personalmente, ciò che dovevo fare era assicurarmi di poter usare i tasti di associazione Vim (o almeno abbastanza vicini) in diverse applicazioni. Dover cambiare completamente il modo in cui ho modificato il testo ogni volta che ho cambiato gli editor ha reso troppo difficile coinvolgere lo stile di editing di Vim nella memoria muscolare.

Nel mio caso, Viemu + vimperator ha fatto il trucco.

1
tomasr

Ho imparato vi solo quando ho iniziato a lavorare per un ISP in cui gli script per la modifica dei domini aprivano solo vi su un terminale. Non avevo altra scelta che impararlo, ma non me ne sono mai pentito.

In breve, mettiti in una situazione in cui non hai altra scelta che impararla.

0
Nathan Fellman

Vorrei iniziare con argdo , e una volta che ti innamori di questo, il resto è facile ...

0
Kearns

Trascorri un paio d'ore sul sito dell'amante di Vi http://nereida.deioc.ull.es/html/vilovers.html - un sacco di tutorial, link, ecc. Con i fan entusiasti di vi.

0
DarenW

Una cosa che ho trovato davvero confusa nella vi moderna (vim?) È la modalità di input che consente alcune, ma non tutte le funzionalità della modalità di comando. Mi sento molto più a mio agio quando la modalità di input è completamente disattivata per "sovrascrivere solo, nessun movimento del cursore possibile" tipo di cose che ha il vecchio Solaris vi. Il vero vi richiede di rimanere nella modalità di comando per la maggior parte del tempo.

Detto questo, al giorno d'oggi non è necessario imparare vi: emacs è altrettanto onnipresente. :)

0
Arkadiy

Attendi fino a quando non devi eseguire il debug di un problema strano e meraviglioso in un ambiente live in cui tutto ciò che puoi fare è accedere alla riga di comando. Potresti non apprezzare VI, ma ti farà risparmiare un sacco di tempo e imparerai un sacco di trucchi per passare attraverso enormi file (di registro).

0

Mentre io sono un grande fan di vi in ​​generale, e vim in particolare, ci sono molti editor potenti, e non dovresti sentire il bisogno di usare vi, o in qualche modo è un editor assolutamente perfetto, perché non lo è.

Se devi forzarti ad usare vi, sarei preoccupato che non ti senti produttivo nell'usarlo. Tuttavia, se insisti nel persistere, probabilmente mi assicurerei di aver usato vi per ogni singola attività di modifica. Ogni volta che devo fare qualcosa e non ho proprio il modo migliore per farlo, proverei a trovare l'ottimale (in termini di sequenze di tasti minime) per farlo in vi after l'ho fatto è un modo normale non ottimale. Poi farei un post-it con questo piccolo suggerimento (o forse solo un file di testo) in modo da ricordarlo per la prossima volta.

Nel tempo, la tua produttività con vi migliorerà notevolmente.

0
Brian Mitchell

Ho imparato vi dall'eccellente libro di O'Reilly "Imparare l'editor vi" .

0
Phillip Wells

Perché non mi metto d'accordo con il mio modo semplice e senza attrito per forzarmi? :-)

Quello che faccio è semplice: provo a fare in modo che git esegua il commit dei messaggi con vim (editor predefinito quando non specifichi un messaggio dalla riga di comando).

Naturalmente un messaggio di commit è così breve che aiuta a malapena. Ma quando si modifica nuovamente un messaggio con git commit --amend è più utile.

0
webmat

Stampa uno dei tanti fogli cheat Vi/Vim che puoi trovare su Internet e costringiti a rimanere con lui per alcune settimane.

Dopo aver appreso alcuni comandi di base, puoi essere abbastanza efficiente. Da lì, continua a collegarti e impara un nuovo comando ogni tanto. Non è possibile apprendere TUTTI i comandi vi. Credo che ci siano più comandi vi di quanti atomi ci siano nell'universo !! :)

0
Utah_Dave

Il modo in cui l'ho fatto è stato quello di impiegare alcuni minuti inizialmente a esaminare le cose più basilari: spostare il cursore, cercare avanti e indietro, saltare alle parole/frasi/paragrafi successivi e precedenti, ecc. Inserimento, aggiunta. Qualunque cosa tu possa trovare nella tua testa. Quindi, quando hai qualcosa da fare che non deve essere fatto nei prossimi 15 secondi, fatti usare.

Quando sei abbastanza a tuo agio con le nozioni di base, impara lentamente i comandi più avanzati, in particolare quelli che sfruttano il tuo apprendimento precedente (come sostituire le 3 parole successive o eliminare il prossimo obiettivo di ricerca)

Adoro usare VI, una volta imparato come. I comandi avanzati sono molto più potenti di ciò che la maggior parte degli editor della GUI sembrano offrire, e il fatto che sia onnipresente e basato su testo, e quindi disponibile su SSH, è tanto meglio.

0
randychilders

Fai quello che ho fatto. Usalo per tutto e esci in #vim su freenode.

0
Jeremy Cantrell

Google è tuo amico. Tieni una finestra o una scheda a portata di mano e quando hai qualcosa che devi fare più volte, dì un rientro o cerca con un regex, cercalo. I migliori siti di suggerimenti diventeranno familiari, aggiungeranno alcuni segnalibri e forse stamperanno un cheat sheet.

0
sammyo

Ho iniziato a usare VI perché è l'editor predefinito praticamente su tutti i sistemi operativi tranne Windows. Poi di nuovo non faccio molto codice su Windows, questo mi aiuta.

Se vuoi forzarti su un sistema * NIX/OSX, rimuovi semplicemente gli altri editor o alias. Per il resto dipende da te stesso. Ogni volta che non usi VI per modificare un file non otterrai un cookie.

0
Kristian

Il modo migliore? Imposta il tuo terminale per usare le combinazioni di tasti vi.

0
chiggsy

elimina notepad.exe e crea un collegamento a vim chiamato notepad invece :)

oppure esegui tutta la tua codifica tramite ssh o su una macchina che non ha GUI;)

0
shyam

Ho provato a tenere un piccolo cheat sheet o note appiccicose di comandi vi comuni. Faccio la stessa cosa per un IDE che uso. Trovo che se appongo delle note adesive delle scorciatoie da tastiera o dei comandi sul mio monitor, mi aiuta a impararle. Una volta che ho usato il scorciatoia abbastanza e penso di ricordarmelo bene, rimuoverò la nota adesiva.

0
Bob Wintemberg

collega simbolicamente ogni editor terminale sul tuo sistema per vim e collega simbolicamente ogni editor grafico sul tuo sistema a uno script che apre una nuova finestra terminale con vim in esecuzione.

0
Steve Losh

L'ho usato per modificare i file sul server web che era Linux invece di usare FTP. Questo è successo 9 anni fa e da allora ho imparato le abilità.

L'altra cosa è trovare qualcosa di eccezionale che puoi fare in VI come la ricerca globale e sostituire o qualcosa di ancora più potente, e usare VI ogni volta che devi farlo.

0
Brian G

Quando devi cercare rapidamente qualcosa, avere tutto su una pagina può aiutarti.

0
webmat

Se ti costringi ad usarlo per alcuni giorni vedrai che i comandi presto diventeranno di seconda natura. Se usi un sistema posix, ti consiglio di iniziare con il nvi con licenza BSD, un classico clone 1: 1 vi, e poi passare a vim. Se inizi con vim, è probabile che tu utilizzi solo un sottoinsieme dei comandi di modifica perché la sua modalità INSERT è molto simile agli editor della GUI.

0
jbcreix

umm, si tratta più di una domanda di fisiologia che di una domanda di programmazione, ma il modo migliore in cui sono stato in grado di fare cose che davvero non volevo fare è semplicemente farlo e smettere di provare a cercare modi di motivarmi per farlo.

Pensa solo a lavarti i denti. Devi motivarti a farlo? No, lo fai e basta.

0
Craig H

Dedica dieci anni alla pubblicazione su Usenet da una macchina in cui erano disponibili solo vi ed emacs (e in cui emacs aveva un tempo di avvio lungo e fastidioso quando veniva invocato da "rn").

È così che l'ho imparato.

Ma per un approccio più rapido, tutto ciò che posso raccomandare è che ti impegni ad impararlo e passi qualche ora a lavorare su un codice sorgente. Installa vim se non lo hai già - ha meravigliose funzionalità di evidenziazione della sintassi.

Ne vale la pena. So che posso andare praticamente su qualsiasi macchina Unix, in qualsiasi parte del mondo occidentale, forse anche attraverso una connessione dialup lenta o su una macchina senza GUI, ed essere pienamente produttivo in pochi minuti.

0
Matt Hucke

Ho un VI su Windows, la versione che uso è elencata di seguito, se mi trovo in una finestra della console ho sempre l'impostazione predefinita di VI, quindi indipendentemente dal sistema operativo in esecuzione, so che posso modificare il file. Al contrario, se sono in modalità UI, uso Notepad ++ go figure.

NT VI - Versione 0.23 Sviluppato da: Tony Andrews Basato su un programma di: Tim Thompson

0
titanae

Sono stato costretto a imparare Vim per il mio primo lavoro di programmazione quando avevo 16 anni (il capo non ci avrebbe permesso di usare nient'altro), ma non ho fatto alcun progresso reale fino a quando non ho letto Vim Book di Steve Oualline = - è altamente raccomandato come punto di partenza se vuoi fare sul serio con vim.

In realtà Vim impiega più tempo a padroneggiare di alcuni linguaggi di programmazione (le funzionalità sono così complesse ). Cercare di "dominare" Vim stampando fogli cheat sarebbe come provare a padroneggiare Haskell leggendo un paio di post sul blog. Preparati a investire un po 'di tempo serio e sarai ben ricompensato.

0
too much php

Mi sono fatto un pratico cheat sheet di una pagina e l'ho usato per imparare tutte le funzionalità non di base. Tuttavia, la pratica riguarda l'unico modo per padroneggiare qualsiasi cosa.

vi è bello perché si trova su ogni computer di tipo UNIX, Mac OS X, Solaris, Linux. Trova una vecchia scatola di decstation su eBay? Ha vi. Che ne dici di Sun OS 4? di nuovo vi.

0
Norman Franke

Gioca un sacco di nethack. Questo è quello che ho fatto quando ero al college, e ho scoperto in seguito che il movimento del cursore era lo stesso. Anche se a questo punto potrebbe essere necessario modificare l'impostazione per utilizzare la mappa dei tasti in stile vi.

0
oj