Idź do ostatniego niebiałego znaku poprzedniej / następnej linii?

10

Lubię klawisze -i <C-M>tryb normalny, aby przejść do pierwszego niebiałego znaku poprzedniej / następnej linii.

Czy istnieją odpowiednie klawisze do przejścia do ostatniego znaku spacji w poprzedniej / następnej linii?

ivan
źródło

Odpowiedzi:

13

g_przesuwa kursor do ostatniego niepustego znaku w bieżącej linii. Od Vima :help g_:

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

Niestety, myślę, że jedynymi opcjami, które musisz przejść do niepustego znaku poprzedniej / następnej linii, jest kg_albo jg_odpowiednio albo użycie liczby, aby przejść w dół.

Łatwo jest jednak przypisać je do czegoś łatwiejszego:

nnoremap <F3> kg_
nnoremap <F4> jg_
akshay
źródło
1
Zauważ też, że 2g_zadziała również, jeśli chcesz przejść do ostatniego znaku spacji w następnym wierszu. Nie można tego jednak użyć w poprzedniej linii. Zaletą 2g_jest to, że można to powtórzyć za pomocą.
EvergreenTree
1
Ruchy (jak g_) nie są powtarzalne z .. Zasadniczo można powtarzać tylko rzeczy zmieniające stan bufora.
tommcdo
Jednak w połączeniu z operatorem powtarzanie działa. Być może o to ci chodziło
tommcdo
Ach, nie zdawałem sobie sprawy, że ruchy nie są powtarzalne. Powinienem spojrzeć na dokumenty zanim coś powiem.
EvergreenTree
0

Jeśli masz na myśli następny znak, który nie zawiera spacji w poprzednich / następnych wierszach (przechodząc w pionie), spróbuj:

map <C-k> :call search('\%' . virtcol('.') . 'v\S', 'bW')<CR>
map <C-j> :call search('\%' . virtcol('.') . 'v\S', 'wW')<CR>
kenorb
źródło