Перейти до останнього непробільного символу попереднього / наступного рядка?


10

Мені подобаються клавіші -та <C-M>звичайний режим для переходу до першого символу непробілу попереднього / наступного рядка.

Чи є відповідні ключі для переходу до останнього символу, що не пробігає, у попередньому / наступному рядку?

Відповіді:


13

g_переміщує курсор до останнього непорожнього символу поточного рядка. Від Vim's :help g_:

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

На жаль, я думаю, що єдиним варіантом, який вам потрібно перейти до непорожнього символу попереднього / наступного рядка, є kg_або, jg_відповідно, або з використанням лічильника для переміщення вниз.

Однак їх легко віднести до чогось легшого:

nnoremap <F3> kg_
nnoremap <F4> jg_

1
Також зауважте, що 2g_це також спрацює, якщо ви хочете перейти до останнього символу без пробілів у наступному рядку. Однак це не можна використовувати для попереднього рядка. Перевага в 2g_тому, що це можна повторити з.
EvergreenTree

1
Рухи (як g_) не повторюються за допомогою .. Як правило, можуть повторюватися лише речі, що змінюють стан буфера.
tommcdo

Хоча в поєднанні з оператором повторення працює. Можливо, саме це ви мали на увазі
tommcdo

Ах, я не усвідомлював, що рухи не повторюються. Я повинен подивитися на документи, перш ніж я щось скажу.
EvergreenTree

0

Якщо ви маєте на увазі наступний непробільний символ попереднього / наступного рядків (переходячи вертикально), то спробуйте:

map <C-k> :call search('\%' . virtcol('.') . 'v\S', 'bW')<CR>
map <C-j> :call search('\%' . virtcol('.') . 'v\S', 'wW')<CR>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.