Vai all'ultimo carattere non bianco della riga precedente / successiva?


10

Mi piacciono i tasti modalità normale -e <C-M>per passare al primo carattere non bianco della riga precedente / successiva.

Esistono chiavi corrispondenti per passare all'ultimo carattere non bianco nella riga precedente / successiva?

Risposte:


13

g_sposta il cursore sull'ultimo carattere non vuoto della riga corrente . Da Vim :help g_:

g_          To the last non-blank character of the line and
            [count - 1] lines downward |inclusive|. {not in Vi}

Sfortunatamente, penso che le uniche opzioni che devi passare al carattere non vuoto della riga precedente / successiva siano kg_o jg_rispettivamente o usando un conteggio per spostarti verso il basso.

Tuttavia, è facile mapparli su qualcosa di più semplice:

nnoremap <F3> kg_
nnoremap <F4> jg_

1
Si noti inoltre che 2g_funzionerà anche se si desidera passare all'ultimo carattere non bianco sulla riga successiva. Tuttavia, questo non può essere utilizzato per la riga precedente. Il vantaggio 2g_è che può essere ripetuto con.
EvergreenTree

1
I movimenti (come g_) non sono ripetibili con .. In generale, solo le cose che cambiano lo stato del buffer possono essere ripetute.
tommcdo,

Tuttavia, quando combinato con un operatore, la ripetizione funziona. Forse è quello a cui ti
riferivi

Ah, non avevo capito che i movimenti non erano ripetibili. Dovrei guardare i documenti prima di dire cose.
EvergreenTree

0

Se intendi il prossimo carattere non di spazi delle righe precedenti / successive (andando in verticale), allora prova:

map <C-k> :call search('\%' . virtcol('.') . 'v\S', 'bW')<CR>
map <C-j> :call search('\%' . virtcol('.') . 'v\S', 'wW')<CR>
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.