Перейти к последнему непробельному символу предыдущей / следующей строки?


10

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

Существуют ли соответствующие ключи для перехода к последнему непробельному символу в предыдущей / следующей строке?

Ответы:


13

g_перемещает курсор к последнему непустому символу текущей строки. От Вима :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.