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?

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_

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>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.