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

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>
kenorb
источник