Domanda

Molto tempo fa, ho letto un articolo del creatore di viemu, chiarendo molti malintesi su vi, oltre a spiegare perché è una buona idea (e perché è stato molto popolare negli ultimi 30 anni e più).Anche lo stesso ragazzo l'ha fatto un fantastico set di cheat sheet grafici che insegnano le basi un po' alla volta.

Sono convinto.

Sono stato convinto negli ultimi 2 anni in effetti.Ma non sono ancora riuscito a sforzarmi di imparare vi come mio editor principale, la curva di apprendimento è semplicemente troppo alta.Quando mi metto al lavoro, la produttività accettabile ma immediata (usando il mio attuale editor) ha finora avuto la meglio sull'enorme produttività più avanti (usando vi).

Qualcuno ha qualche buon consiglio per superare la curva di apprendimento?Possono essere suggerimenti diretti, qualche altro tutorial o articolo, qualunque cosa.

Modificare:Tieni presente che sono a conoscenza del vim/gVim, Crema E MacVim (ecc.) varianti 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)

Utilizzo Vim (più precisamente MacVim) nella mia vita professionale quotidiana dallo scorso dicembre.Non tornerò indietro :-)

Buona fortuna a tutti per la loro padronanza di Vim.

È stato utile?

Soluzione

Prima di tutto, potresti voler prendere Vim;ha un set di 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 un calo di produttività (senza essere licenziato), suggerirei di intraprendere un progetto nel fine settimana con l'unico scopo di imparare l'editor.Mantieni la documentazione aperta mentre lavori e sii abbastanza disciplinato da non tirarti indietro.Man mano che impari di più, diventi efficiente e inizi a fare affidamento sulla memoria muscolare, non sarà più così difficile mantenerla.

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

Altri suggerimenti

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

Successivamente mi abituerò a premere ctrl+[ ogni volta che ti viene detto di premere Escape.È molto più veloce e non avrai bisogno di togliere le mani dalla tastiera.

Poi 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, fai pratica, pratica, pratica.

modificareIl 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 veramente la natura modale, che è molto potente una volta padroneggiata.

Passaggio 0: imparare a scrivere a tocco.Seriamente, se le tue dita non sanno dove sono i tasti, Vim sarà una seccatura.E anche se rifiuti Vim, la digitazione a tocco lo farà migliorare la tua programmazione (chiedere Steve Yegge ) rendendo la mente per monitorare il collegamento priva di attriti.C'è un quantità Di Software che può aiutarti a migliorare la tua digitazione.

Passo 1: utilizzo vimtutor per iniziare.È in GVIM (sotto il menu di aiuto penso) o puoi semplicemente digitare "VimTutor" nella riga di comando.Ci vorranno 30-45 minuti del tuo tempo e quindi le dita conosceranno le basi di VI/VIM e dovresti essere in grado di modificare i file senza voler scagliare la tastiera fuori dalla finestra.

Passo 2: usa vim ovunque.Vedere questa domandaPer suggerimenti e collegamenti per l'utilizzo di vincoli chiave VIM e VI nella riga di comando, dal browser Web, per comporre e -mail, nel tuo IDE ...È necessario utilizzare VIM per incorporare i legami chiave nella memoria muscolare.

Passaggio 3: saperne di più su vim.Avrai solo graffiato la superficie con Vimtutor.Puoi guarda questo video o leggere Questo articolo (Entrambe le "sette abitudini di un editing di testo efficace".PuoiLeggereDisuggerimentiEtrucchi SUStackOverflow.Puoi navigare vimtips.Impara un po 'spesso sarebbe il mio consiglio: c'è così tanto là fuori che attenersi a blocchi di dimensioni del morso sarà il modo migliore per rendere la conoscenza.

Passaggio 4: Profitto :)

Sono stato un utente di vim più e più volte nel corso degli anni (facendo occasionalmente il lavoro di amministratore di sistema).Recentemente ho iniziato a dedicare più tempo al mio lavoro di programmazione.Suggerirei di iniziare anche con gvim.Si integra bene con la maggior parte degli ambienti del sistema operativo e (ancora meglio), puoi ricorrere al mouse quando ne hai bisogno :).

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

Quindi, inizia a eseguire modifiche rapide e minori con esso (roba di sostituzione del blocco note) finché non ti senti abbastanza a tuo agio da eseguire modifiche utili in una clip rapida.Quindi prova a svolgere il tuo lavoro quotidiano al suo interno.Ti ritroverai a desiderare il comando "ripeti l'ultima azione" in altri editor in pochissimo tempo!

Hai chiesto buoni consigli per 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.Passare a vi da un editor più grafico richiede un cambiamento di mentalità.Richiede pensare in termini di comandi, piuttosto che di cambiamenti visivi.

Non ho usato altro che vi per molti anni e credo che l'unico modo per essere produttivo sia memorizzare i comandi che usi regolarmente.Il modo in cui l'ho fatto è stato creare un breve elenco dei comandi da tastiera più comuni.Ho raggruppato e codificato a colori questi comandi per funzione, ad es. Spostamento del cursore, modifica, ricerca, eccetera.Sono stato attento a includere solo i comandi di uso più comune che non conoscevo.L'idea è quella di creare un riferimento rapido che sia anche un aiuto nella memorizzazione – non per sostituire le schermate di aiuto disponibili.Poi ho stampato questo elenco e l'ho attaccato al muro dietro il mio monitor in modo da poterlo vedere facilmente.(I cheat sheet grafici che hai menzionato potrebbero funzionare meglio per alcuni, ma sono probabilmente una fonte di riferimento migliore di uno strumento di memorizzazione.)

Ecco la chiave. Non appena mi sono sentito a mio agio con uno dei comandi, ho tracciato una linea su di esso con una matita.Potevo ancora vederlo se ne avessi avuto bisogno, ma per me era simbolico aver padroneggiato quel comando.Ciò mi ha dato fiducia e motivazione poiché ho potuto vedere progressi regolari.Dopo averne cancellati la maggior parte, li ho rimossi e ho aggiunto alcuni dei comandi usati più raramente.Ho continuato questo processo finché non sono stato soddisfatto della mia padronanza di vi.Sapevo di essere arrivato a quel punto quando mi sono reso conto che non avevo cancellato nessun comando e non avevo nemmeno 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 l'ho usato a malapena.Ho finito per creare elenchi e affiggerli 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 dall'ultima volta che avevo usato vi.

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

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

Quindi basta imparare le basi:i = modalità di inserzione ESC = Leave Insert Modalità: WQ = Salva e Scegli: Q! = Non salvare e smettere x = quando non in modalità Insert, Elimina il carattere./=cerca

Ciò ti aiuterà a superare qualsiasi emergenza di editing.Non c'è niente che non puoi fare con quei pochi comandi (e ovviamente la navigazione).Il resto puoi "Attaccarlo" 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.

non forzarti.il percorso verso la maestria dell'amore è.

Dovresti iniziare con vim (Vi IMproved) e soprattutto la sua GUI - gVim.La GUI dispone di menu e su Windows è possibile utilizzare le scorciatoie copia, taglia e incolla, in modo da poter sostituire immediatamente il Blocco note.E poiché i menu mostrano le scorciatoie (comandi vim) potresti imparare molto.

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

elimina tutte le altre app di editor di testo.

Allora dovrai impararlo.

Il modo più semplice per forza tu stesso potresti semplicemente rimuovere tutti gli altri editor dal tuo computer.Sbarazzarsi della tentazione :)

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 si tratta di qualcosa che puoi descrivere in termini semplici (come "scambiare paragrafi di testo" o "eliminare tutto dopo il carattere X nelle righe commentate"), è qualcosa che puoi fare solo con un paio di tasti in vim.

Ci sono alcune funzionalità chiave che sono estremamente utili e finirai per utilizzarle continuamente.Quelli che amo di più sono:

  • Selezione del blocco (Ctrl-V)
  • Registrazione macro (q)
  • Modifica 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 (questo è incredibilmente potente)

Chiedi ad altri programmatori quali funzionalità trovano più utili e adotta quelle che si adattano meglio al tuo cervello.Rubare idee da quelle degli altri .vimrcS (ecco il mio)

MODIFICARE:Ho creato una flashcard impostata sul sito di ripetizione spaziata online flashcarddb.com, nel caso ti interessasse...

  1. Utilizzare un programma di flashcard a ripetizione distanziata come mnemosine, supermemo, O anki per incorporare l'apprendimento e il mantenimento di nuovi comandi nella routine quotidiana.Non è sufficiente utilizzare vim come editor quotidiano.Per padroneggiarlo, devi memorizzare quei codici nella tua testa, aspettando il momento in cui saranno la soluzione ideale per il compito da svolgere.
  2. Mantieni un .vimrc con personalizzazioni
  3. Scrivi o modifica un plugin vim

Ho scritto una guida a editing efficiente con Vim un po 'di tempo fa.Potresti trovarlo utile.

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

Ad esempio, l'integrazione di CTags di Vim è assolutamente indispensabile per me.Lavoro con una codebase molto, molto grande e la possibilità di passare a una definizione di funzione o di classe premendo un solo tasto (indipendentemente dal file in cui si trova) è una funzionalità assolutamente eccezionale, senza la quale ho difficoltà a lavorare.

Utilizza il tuo file .vimrc per creare macro che automatizzino le attività comuni.

Il tuo selezionatore di editor con pilota automatico sceglierà l'editor che porterà a termine il lavoro più rapidamente e con il minimo sforzo mentale.Un po' di lavoro di preparazione garantirà che l'editor sia Vim.:-)

Due cose che miglioreranno notevolmente le tue abilità con Vi:

  1. Pratica, pratica, pratica
  2. Nethack

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

  • (Esc) per tornare alla modalità comando (cosa più 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 prima facevo affidamento su vi per il mio editor di testo principale, ma ora solo se necessario.Nel mio caso, la produttività è migliore quando utilizzo strumenti come Emacs o Visual Studio (nota:"nel mio caso").Prova più di uno strumento e scegli quello che aiuta maggiormente la tua produttività.Buona fortuna!

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

Annota tutte le scorciatoie e le funzionalità che usi nel tuo attuale editor mentre lo usi al lavoro.Quindi siediti sabato mattina e, utilizzando Google e Stack Overflow, scopri come eseguire ognuno di questi in vi.Probabilmente è meglio se usi un foglio (o più fogli) di carta per questo.

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

Infine, pubblica l'elenco delle scorciatoie crossover dal tuo vecchio editor a quello nuovo sul tuo blog.

Buona fortuna!

Non utilizzare X11?

$ sudu rm /usr/local/bin/emacs

Cambia la tua shell di accesso in vi?

Per prima cosa, sforzati di usarlo ed, Poi vi ti sembrerà un lusso?

Usa il vi associazioni di tasti in bash?

Inizia a usare vi tutto il tempo?

Mi sembra che imparare un editor non sia molto diverso dall'imparare una lingua.L'immersione funziona meglio.

Io uso vi per modifiche davvero veloci o quando non posso usarlo X11 per qualche motivo, ma vivo a emacs.Vale la pena dedicare del tempo all'apprendimento per gli editor davvero potenti.

La mia raccomandazione è di inventare alcuni programmi semplici e scriverli, dall'inizio alla fine, utilizzando VI.

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

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

Se hai problemi a trovare 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 il vantaggio aggiuntivo di farti vedere quanto sei diventato uno sviluppatore migliore.:)

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

Ricordo che quando ho iniziato a studiare emacs per la prima volta, è stato dopo che mi sentivo già molto a mio agio con Vim, ed ero sulla stessa barca o simile alla tua, dove sapevo come fare molto con un altro editor, quindi quando ho iniziato usando emacs, era sempre dolorosamente lento.

Tuttavia, penso che quello che dovrai fare è semplicemente assorbire un po' il dolore, e sempre, sempre, SEMPRE assicurarti di consultare la documentazione per fare qualcosa che vuoi Sapere puoi farlo nel tuo editor precedente, come spostarti alla fine di una riga o selezionare un'area di testo.

È anche utile avere a disposizione un esperto vi locale a cui porre domande o, se sei come la nostra azienda, promuovere la programmazione in coppia.In questo modo, quando provi a fare qualcosa che dovrebbe essere facile, puoi semplicemente chiedere a qualcuno, ti mostrerà come fare e, se usi l'editor regolarmente per alcune settimane, non dovresti chiedere altro poi un paio di volte prima che diventi una seconda natura.

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

In definitiva, imparare Vi è come apprendere altre abilità, non esiste una soluzione miracolosa e dovrai accettare il fatto che, per un po', sarai meno produttivo rispetto al tuo attuale editor.Continua a ripeterti: "Altre persone sono state in grado di imparare Vi, e io sono intelligente almeno quanto loro" (questo è quello che mi dico comunque :))

Il motivo principale per cui lo utilizzo vi È ssh (o Putty su Windows):Quando hai effettuato l'accesso a un server Unix in remoto, quindi vi è sempre disponibile.E funziona con VT100 quando non sono mappati né i tasti cursore né backspace/cancella.

Anche avere un libro come Riferimento tascabile dell'editor VI aiuta molto.

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

Ho scoperto che il lavoro svolto mi ha aiutato a superare la difficoltà di apprendimento iniziale;e poi passare da Visual Studio a ViEMU mi ha aiutato ad affinare le mie capacità di VI.

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

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

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

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

Percorrerai la strada più lunga per realizzare determinate cose a breve termine: queste sono ovvie opportunità per imparare nuove scorciatoie.

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

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

Se non puoi toccare il tipo e sei sempre a caccia e becca dei due punti o dell'hjkl o :%s/foo/bar, dimenticatelo.Digitando Potere essere più veloce che usare il mouse, ma se non è il tuo caso, vi non funzionerà.

Ma combina buone capacità di battitura, ssh e schermo e vi sarà naturale.

Affronta il fatto che creerà un immediato successo in termini di prestazioni.Quando impari un nuovo strumento devi essere in grado di fare qualcosa che sai fare con altri strumenti, quindi il problema non è tuo.Dopo aver utilizzato per un po' il nuovo strumento, questo 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 introvabile senza di essa.Ad ogni nuova lettura vedrai una funzione e dirai: "ah ah, questo avrebbe risolto questo problema che stavo cercando di capire la settimana scorsa", e lo archivierai nel tuo cervello.Le soluzioni connesse ai problemi del mondo reale che hai avuto sono molto più facili da ricordare rispetto alle scorciatoie casuali.

Alla fine puoi usare vim con un sottoinsieme abbastanza piccolo delle sue funzionalità, quindi non lasciarti sopraffare da tutti gli fronzoli.Pensa a tutte le funzionalità di Word: il 99% delle persone le utilizza?

ESC gg=G per reindentare il codice e :retab convertire le schede in spazi o gli spazi in schede è stato ciò che mi ha affascinato di Vim.Quindi in realtà non è necessario essere costretti ad usarlo, devi solo imparare quando può aiutarti ad aumentare la tua velocità.

Vai oltre vimtutor.

Inizia a utilizzare vim per modifiche semplici, come file di configurazione o html.Impara i comandi quando ne 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 bella combinazione di colori.

Impara le macro perché Vim è la soluzione migliore per attività automatizzate e inserimento di snippet, come la formattazione di alcune parole in un tag XML complesso o la conversione di un CSV in una tabella HTML.

Potresti voler iniziare con Cream.Cream si descrive come "una configurazione moderna" di vim.Fondamentalmente, è una versione speciale di vim che assomiglia a qualsiasi altro editor di testo a tutti gli effetti pratici.Ma abilita la "modalità esperto" e avrai tutta la potenza e il comportamento di vim.

Quindi puoi iniziare a utilizzare Cream come un normale editor di testo e poi sperimentare la "modalità esperto" finché non ti senti abbastanza a tuo agio da passare completamente a vim.

Installare gVim su tutte le piattaforme che usi.

Quindi esegui il vimtutor (:help vimtutor O vimtutor dalla riga di comando).

Guarda la seguente conferenza e segui i suoi consigli: 7 abitudini per un editing di testo efficace 2.0

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 approfondito (una volta l'ho fatto per passare a dvorak da qwerty e la mia produttività era abbastanza alta entro lunedì e sono riuscito a mantenerla dopo).

Ne vale la pena e non guarderai indietro!

Personalmente, quello che dovevo fare era assicurarmi di poter utilizzare le associazioni di tasti di Vim (o almeno abbastanza simili) in diverse applicazioni.Dover cambiare completamente il modo in cui modificavo il testo ogni volta che cambiavo editor rendeva troppo difficile impegnare lo stile di editing di Vim nella memoria muscolare.

Nel mio caso, Viemu + vimperator ha funzionato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top