2011-10-06 27 views
9

non ho visto questo ha chiesto su StackOverflow, e questo è il mio più grande punto di dolore in vim:modo migliore per muoversi in vim (modalità normale)

Come si fa a tutti di navigare all'interno di un file? Mi sono ritrovato a usare l'hjkl troppo o troppo ripetitivo e voglio migliorare in questo. Questo è frustrante quando sei su un grande monitor.

Ho installato EasyMotion - e finora è stato buono per me - io voglio solo sapere se c'è qualcosa di meglio ...

Grazie!

risposta

19

Mi piace il cheatsheet of Ted Naleid. È come un reticolo per trovare facilmente i movimenti orizzontali e verticali. Mettilo su un muro vicino al tuo monitor e presto acquisirai nuovi movimenti al volo.

I movimenti che mi è piaciuto di recente sono:

  • () {} e che consentono di salire la funzione saggio nel codice sorgente
  • /e? + n/N basta cercare, sai normalmente dove vuoi andare
  • fx e tx - per saltare ao prima del prossimo carattere x ovviamente puoi fare un 2fx per saltare alla seconda occorrenza di x, come te può fare con tutti i movimenti
  • % per spostarsi tra inizio e di fine parentesi
+2

+1 questo cheatsheet è intelligente, facile da capire e di bell'aspetto. – romainl

+0

Per molto tempo l'ho salvato sul mio desktop. – skeept

2

documentazione Semplice:
http://vim.wikia.com/wiki/Moving_around

movimento di listino:
hjkl/tasti freccia/pagina su/pagina giù
% passerà tra/parentesi finale aperto
gg/G spostare verso l'alto/basso

Piegatura:
Per la compressione di grandi blocchi di codice, è possibile utilizzare la piegatura.
http://vimdoc.sourceforge.net/htmldoc/fold.html

Ricerca:
Per passare a qualcosa in particolare di tipo /searchstring (utilizzare con set inc per saltare alle partite durante la digitazione)
* per cercare in avanti per la stessa parola il cursore si trova su
# stesso, ma di ricerca indietro

È anche possibile utilizzare i segni.
http://vim.wikia.com/wiki/Using_marks

Uso anche ctags e salto per trovare elementi su più file.
http://vimdoc.sourceforge.net/htmldoc/tagsrch.html

Non ho mai avuto bisogno di nient'altro.

9

Io uso e w per spostarsi a sinistra e a destra rispettivamente su una singola riga. Per su e giù, io uso rispettivamente Ctrl+u e Ctrl+d. IMO Ctrl+u e Ctrl+d sono migliori di Ctrl+b e Ctrl+f perché fanno scorrere mezza finestra alla volta in modo da non perdere il contesto.

Non ho ancora utilizzato alcun plug-in per spostarsi in vim finora.

Ha dimenticato altre due importanti combinazioni di tasti, $ e ^ per spostarsi rispettivamente alla fine della riga e all'inizio della riga.

3

Dipende da come si desidera spostare in giro, ma in generale,

  • A si mette in modalità di inserimento alla fine di una linea
  • I all'inizio
  • o inserisce una riga sotto
  • O sopra

e più potere completamente, la ricerca con /<thing you want to jump to> è molto utile. In un file c in cui vengono formattate le funzioni

int 
funcname() 

/^funcname salterà voi l'inizio della funzione. Ce n'è un altro in più, ma questo potrebbe essere un buon inizio per qualcuno che è nuovo di Vim.

7

Diversi comandi di movimento:

b B e E f F ge gE gj gk go G h H j k l L M n N t T w W { }/?^$ # * ` ' | % 

a imparare, oltre a tutti i comandi che iniziano con [ come [{ che è molto utile quando si modifica il codice C-style ...

Vedi :help index.txt per riferimento.

1

io non vedo molto da aggiungere in termini di illuminazione generale, ma io uso (ordinati per quante volte li uso):

w and b 

spostare da una parola a destra e la sinistra.

/ and ? 

per cercare una parola o un motivo in basso o in alto.

G and gg 

per saltare verso il basso e la parte superiore del buffer.

<C-f> and <C-b> 

per passare alla schermata successiva e precedente.

* and # 

per passare alla successiva e precedente occorrenza della parola sotto il cursore.

f and F 

per saltare prima di un carattere a destra oa sinistra.

t and T 

per saltare su un carattere a destra oa sinistra.

Ho! e

$ and^

molto, anche per saltare fino alla fine e all'inizio di una linea.

3

lo più mi utilizzare i seguenti (in ordine di frequenza):

  • 'R vanno a segno di riscontro (il ` è troppo fuori la tastiera di base da usare tanto)
  • /ricerca | ? ricerca avanti | ricerca indietro
  • n | N successivo | precedente nella ricerca
  • H | L | M top | bottom | mezzo di visualizzazione
  • G andare alla fine del file
  • 1G andare alla linea 1
  • { andare indietro di un 'punto' (spesso un blocco di codice)
  • } andare avanti di un 'punto'

La maggior parte tutti questi possono essere Augme con un conteggio prima del comando.

0

Leggi http://www.viemu.com/a-why-vi-vim.html ed esegui vimtutor, anche: help motion.txt sarà utile. Raccomando anche di rimanere in modalità normale per tutto il tempo - come descritto nell'articolo sopra. In generale, l'apprendimento di Vim è l'apprendimento del piano: devi esercitarti molto.

Problemi correlati