Migliorare in Vim [chiuso]


116

Uso Vim da un bel po 'di tempo, ma sono a un livello in cui uso la modalità di inserimento la maggior parte del tempo e uso ancora i tasti freccia per spostarmi (!).

Mi sento come se non stessi ottenendo il meglio dal mio adorabile editor, in particolare per quanto riguarda la navigazione (specialmente il codice), il copia e incolla e altre manipolazioni del codice esistente. (anche se sono abbastanza a mio agio con complicati modelli di ricerca / sostituzione).

  • Come devo fare per saperne di più?
  • Quali risorse consiglierebbero le persone?

8
Cosa c'è di sbagliato nell'usare i tasti freccia per spostarsi? Questo è ciò che sono per !
Vilx

39
@Vilx, non ti muovi con i tasti freccia nemmeno nei giochi d'azione per computer ! Per non parlare degli editor di testo ...
P Shved

6
@Vilx: i tasti freccia su una tastiera sono in un posto orribilmente scomodo per qualsiasi tipo di navigazione. Ecco perché il canone in ViM è usare HJKL, proprio come useresti WASD in un gioco in prima persona.
Will Vousden

4
Il WASD è lì perché è più facile da usare con la mano sinistra, poiché quella di destra controlla il mouse. I mancini usano le frecce. E HJKL è così controintuitivo. Quale si muove dove?
Vilx

8
Beh, penso che non si tratti di "frecce contro hjkl" quanto di "movimento del cursore contro oggetti di testo".
Matteo Riva

Risposte:



66

Ecco alcuni fantastici screencast che dovrebbero darti un'idea di cosa imparare dopo. Ci sono anche video per argomenti intermedi e avanzati, ma quelli per principianti sono in effetti i più importanti.

Inoltre, quando ho sentito che stavo stagnando e non imparavo davvero "alla maniera di Vim", ho scelto di disabilitare i tasti freccia sia in modalità normale che in modalità di inserimento. Questo ti costringe a usare ESC per arrivare da qualche parte e ti fa pensare in modo più simile a Vim. Alla fine, ho abilitato nuovamente i tasti freccia in modalità di inserimento, ma non li uso quasi mai. C'è, molto spesso, modi migliori per spostarsi.

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

E specialmente

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>

5
Mi piace l'idea di disabilitare i tasti freccia, è un bel modo per costringerti a smettere di usarli.
Idan K

1
Ha funzionato molto bene per me, ma i primi giorni sono stati estremamente frustranti. Tuttavia, una volta che ci si abitua e si ha l'abitudine di muoversi TROPPO in modalità di inserimento, consiglio di riattivare le imap.
Sarah

Questi screencast sono stati fantastici. Grazie per avermelo fatto notare.
Mert Nuhoglu

2
Disabilitare i tasti freccia è un'idea FANTASTICA, lo sto facendo adesso.
gorsky

La disabilitazione dei tasti freccia si basa sul presupposto che i tasti freccia siano più fuori mano di hjkl. È meglio avere una tastiera migliore. Uso Kinesis Advantage. Anche se stavo usando una tastiera standard, hjkl non ha ancora senso dato che uso dvorak. Quello che voglio dire è: il punto non è "non usare i tasti freccia", il punto è "Usa i mezzi più efficienti e non evitare guadagni di efficienza a causa di una curva di apprendimento".
Espiazione limitata

23
  1. digitare vimtutorsulla riga di comando
  2. entrare in vim, digitare: help o <F1>
  3. iscriviti alla mailing list
  4. documenti ufficiali di vim

1
L'unica cosa che non avevo considerato era iscrivermi alla mailing list: fatto ora :)
James

1
è un buon posto per ottenere aiuto e mettere in pratica le tue abilità vim risolvendo i problemi degli altri.
ghostdog74

1
+1 per vimtutor: un modo eccellente per entrare nella memoria muscolare.
Hamish Downer

16

Altri due suggerimenti:

  • Usa Vim per modificare tutto (email, moduli web, codice, ...). Quando qualcosa sembra lento, probabilmente c'è un modo più rapido per farlo. :helpgrepÈ tuo amico.

  • Vai su http://vimgolf.com/ e gareggia. Ho imparato molti suggerimenti e trucchi in questo modo. [ Disclaimer : Nessuna responsabilità è accettata per i lunghi periodi di tempo che " scompaiono " durante la competizione a VimGolf ].


2
Benissimo, non sapevo di vimgolf!
James,

1
@Autopulated: hanno aggiunto il disclaimer.
Johnsyweb

2
@Johnsyweb: Voglio davvero essere in grado di usare vim per tutto, ma come? Ottenere un clone di vim appropriato all'interno di ogni modulo web sarebbe l'ideale, perché tutti i componenti aggiuntivi del browser che ho trovato di solito implementano solo un piccolo sottoinsieme casuale di funzionalità di vim e rimappano le associazioni di tasti per adattarsi al fatto che il browser ha ancora bisogno accesso a determinate mappature.
Conrad.Dean


10

È così che ho imparato Vim (e un sacco di altre cose). È abbastanza facile.

Sfoglia i documenti della guida e trova un comando per qualcosa che fai sempre. Elimina una parola intera, ad esempio. Impegnati a ricordarlo.

Ora, la prossima volta che ti ritrovi a premere "xxxxx" per eliminare una parola, fermati, rimettila a posto e usa il nuovo comando. Cerca se devi. Quindi invece di premere "xxxxxx" torni indietro e premi "dw".

Fallo ancora e ancora, all'inizio sarà lento ma alla fine si attaccherà.

Una volta che hai quel comando in basso, inizia dall'alto. Trova un altro comando per un'azione che fai sempre ...

Saresti sorpreso di quanto velocemente puoi acquisire nuovi comandi e tecniche in questo modo.


7

Rimappare / disabilitare i tasti freccia come suggerito è un ottimo modo per sforzarti di non usarli.

Un'altra cosa da considerare: se premere Esc sulla tastiera è scomodo, potresti voler rimappare Caps Lock su Esc nel tuo sistema operativo. Per me questo è stato un passaggio estremamente utile, poiché Esc è una portata scomoda per il mio KB e questo è stato un altro ostacolo che mi ha tenuto in modalità di inserimento (poiché era difficile uscirne). Avere Esc su Caps Lock lo rende una portata minuscola e saltare dentro e fuori dalla modalità di inserimento è molto veloce.

Per imparare cose avanzate in Vim la migliore risorsa è: help, ma per imparare le basi devi solo farlo; è la memoria muscolare più di ogni altra cosa. Dici di conoscere la ricerca. Consapevolmente usalo come strumento di navigazione. Le ricerche [/,?] E le ricerche inline basate sui caratteri [f, F, t, T] sono alcuni dei principali strumenti di navigazione di Vim. Usali e basta; combinato con i tasti cursore disabilitati navigherai sulla sola memoria muscolare in pochissimo tempo.

Oggetti di testo. Facilmente una delle migliori caratteristiche dell'editor. Questa è l'altra cosa da praticare immediatamente e coscientemente. Cose come "yiw", "dit", ecc. Sono così potenti e veloci; imparare e usarli da soli ti farà sentire un utente Vim.

Una volta che hai gli oggetti di testo e la navigazione di base verso il basso, allora è il momento di passare alla lettura e all'apprendimento da: help regolarmente e setacciare il Web alla ricerca di plugin fantastici. Seriamente, puoi usare Vim per anni e avere un "ah ah!" momento inciampando accidentalmente in qualche oscuro bocconcino nel: aiuto che non avresti mai conosciuto.


Invece di rimappare in Caps Lock, suggerirei Ctrl-C. Questo è facile da digitare e abbastanza familiare agli utenti di Linux.
BandGap

6

Vedi questo thread: qual è la tua scorciatoia più produttiva con Vim?

Soprattutto la prima risposta.


3
In quanto autore della "prima" risposta devo dire, in tutta franchezza, che non è necessariamente la guida migliore per migliorare in generale la tua padronanza dell'editor. Copre un sacco di argomenti su cosa si può fare con vi quando lo si considera come un linguaggio per esprimere i modi in cui si desidera manipolare il testo, lo schermo / terminale e l'ambiente dell'editor stesso. Tuttavia, molte delle cose che contengono sono piuttosto avanzate.
Jim Dennis

1
Non ho imparato così tanto dalla lettura di quella risposta che non penso che avrei mai imparato leggendo la documentazione!
James


3

Come devo fare per saperne di più?

Leggi completamente il manuale di vim (digita :h; puoi navigare da lì). In questo modo puoi conoscere tutti i movimenti e i comandi. È molto utile se conosci già le basi e vuoi migliorare.

Quali risorse consiglierebbero le persone?

vim.org, guarda attraverso gli script vim più popolari . Controlla le loro fonti se trovi qualcosa di interessante. O semplicemente installali e divertiti. Quel sito comprende molti collegamenti a script che aiutano a navigare nel codice sorgente in diverse lingue; ed è relativamente facile trovarli lì.

StackOverflow.com potrebbe anche essere di aiuto .


3

Ho creato questo gioco per aiutare mio nipote ad imparare, ma funziona solo su Firefox e Chrome>. < http://kikuchiyo.org

Per ora, si tratta solo di movimento e di entrare in modalità di inserimento. La versione beta ti consente di attaccare i nemici con la spada laser, "i" a sinistra e "a" a destra: P

Continua a cercare di imparare Vim, ne vale la pena!

:)


Ora che è davvero una buona idea!
James

Aggiornamento: il sito è ora su kikuchiyos-vim-game.herokuapp.com .
kikuchiyo


2

Uso ancora i tasti freccia per spostarmi (!).

Non vedo alcun problema con questo.

Francamente, qual è la probabilità che tu debba usare vim e una tastiera priva di tasti freccia?

Sai, la maggior parte delle persone usa vim perché fa il lavoro (oh, va bene, perché l'hanno padroneggiato a un livello quando fa il lavoro per loro), non per essere elitari (come non usare i tasti freccia).

Un paio di consigli per migliorare la tua conoscenza di vim:

  • apri periodicamente l'aiuto di vim in un posto casuale e leggi una caratteristica distinta casuale. Ci vorranno un paio di minuti. È possibile che non utilizzerai questa funzione nei prossimi X anni. Ma se sei fortunato, ti troverai in una situazione in cui vedrai che puoi applicare le tue conoscenze su quella funzione per ottenere un determinato compito. Aprirai di nuovo la guida per rinfrescarti la memoria. Dopo aver utilizzato la funzione in pratica per un paio di volte, si attaccherà. A questo punto la tua conoscenza di vim sarà migliorata.
  • usa: helpgrep per scavare in posti casuali di documentazione. Se devi fare qualcosa e trovi il posto che lo spiega nei documenti, non fermarti qui. Leggi il frammento di documento ancora una volta. Trova le parole chiave. Per ogni parola chiave, utilizzare la parola chiave: helpgrep per scoprire i collegamenti logici con altre parti della documentazione di vim.

Immagino che il problema che ho solo leggendo la documentazione sia che trovo di non imparare le cose in modo molto efficace senza averle effettivamente eseguite .
James

1
Usare i tasti cursore per spostare il cursore per brevi distanze può essere altrettanto efficiente quanto usare i tasti [h], [j], [k], [l] ... se le dita si trovano vicino a loro per qualche altro motivo. L'uso di qualsiasi movimento del cursore lineare è orribile per più di poche colonne o linee di movimento. Di solito è meglio pensare a quello che stai cercando ed esprimerlo direttamente in vi usando / o? comandi ed espressioni regolari. Ultimo pezzo di testo vicino a pippo? G? Foo [Invio] (sei sequenze di tasti). Prima riga con "bar ... something .. bang in it? 1G / bar. * Bang [Enter] (circa una dozzina di tasti) ... e così via.
Jim Dennis

Sebbene i tasti freccia siano probabilmente più efficienti del raggiungere il mouse, se digiti utilizzando i tasti della riga home per raggruppare le mani dopo aver digitato una sequenza di caratteri, non è necessario alcun movimento per inserire uno dei tasti di movimento di base di "j", "k", "l" e una leggera "contrazione" verso sinistra per ottenere il tasto "h". Se fai le cose nel modo in cui Vim, le tue mani dovrebbero essere sempre più vicine ai tasti della riga home che ai tasti freccia. Continua a esercitarti e lo otterrai. :)
kikuchiyo


2

il modo in cui ho smesso di usare i tasti freccia non li disabilitava (li uso ancora in modalità di inserimento) ma se ci pensi se vuoi andare a destra usa il mignolo che è la lchiave, vai a sinistra Dito indice il htasto, & anulare in alto ("squilla") la kchiave e "prendi" la jchiave.

Quindi la prima delle quattro cifre sulla tua mano (dimentica il pollice) quella dell'indice è quella più a sinistra e quella del mignolo è quella più a destra. Usa l'espressione "suona" come nella telefonata per alzarti con l'anulare e il dito medio non ha altro posto dove andare se non verso il basso.

Mi aiuta anche molto a dimenticare il nome dei tasti (h, j, k, l). Non c'è un buon mnemonico per ricordarli in quel modo che ho trovato e non ci sono nemmeno troppe mappature che usano quei tasti.





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.