2

есть ли способ перемещаться между строками по первой букве в vim, как мы обычно это делаем, используя «f +letter» в текущей строке, например:

 din          (tuple_hash_ack_data),       
 wr_en        (tuple_hash_ack_wr),        
 dout         (ack_fifo_data),       
 rd_en        (ack_fifo_rd),       
 empty        (ack_fifo_empty),        
 data_count   (tuple_hash_count),      
 almost_full  (tuple_hash_almost_full)  

Сначала курсор останавливается на первой строке:

   din          (tuple_hash_ack_data),  

Я хочу перейти на линию:

   almost_full  (tuple_hash_almost_full)   

Я хочу напечатать что-то вроде "fa", это возможно?

3 ответа3

6

/^a приведет вас к следующей строке, начинающейся с "a" - в синтаксисе регулярного выражения ^ соответствует началу строки, поэтому /^a ищет начало строки, за которой сразу следует a.

1

Особенно с помощью :set relativenumber , навигация к началу соседней строки может быть выполнена с помощью [count]_ (вниз) и [count]- (вверх). Обратите внимание, что такие команды, как j и k могут начинаться с префикса [count] .

0

Когда дело доходит до перемещения в окне, вы должны дать плагину точный джамп шанс. Я использую это с сопоставлениями:

nnoremap ,f :call PreciseJumpF(-1, -1, 0)<CR>
vnoremap ,f <ESC>:call PreciseJumpF(-1, -1, 1)<CR>
onoremap ,f :call PreciseJumpF(-1, -1, 0)<CR>

поэтому я печатаю ,f затем символ и все вхождения этого символа подсвечиваются. Я просто набираю соответствующий символ, и курсор переходит туда.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .