Перемещение строк курсора x из текущего положения в vi/vim
есть ли способ переместить курсор на относительное количество строк в vi / vim? Скажем, у вас есть Курсор 10 строк под блоком кода, который вы хотите удалить. Если у вас есть номера строк, показанные в относительном порядке, было бы неплохо иметь команду "перейти на 10 строк", которая приведет вас туда.
или, возможно, лучше показать абсолютные номера строк и перейти к xgg, где x-номер строки?
3 ответа:
Да, конечно, есть способ.
j
иk
двигаться вниз и вверх на одну строку, так10j
и10k
перемещение вниз и вверх на десять строк. Вы можете повторить любое движение, поставив перед ним число.вы также можете захотеть
set relativenumber
если это то, что вы делаете много - это поможет вам сэкономить подсчет, печатая номера строк относительно текущей строки, а не абсолютные числа.
перемещение 10 строк вверх и вниз может не соответствовать вашей задаче, а также другим параметрам. Рассмотрим другие движения:
Ctrlf,Ctrlb страница вперед и назад.
}, { двигаться вперед и назад на один пункт.
вы можете написать правила в своем vimrc для привязки
10j
к ключу, скажемJ
перейти на 10 линии, добавив следующую строку в ваш vimrc файл:map <S-j> 10j
однако вы будете перезаписывать полезные существующие (соединить две линии). Найти хорошо расположенную неиспользуемую комбинацию клавиш для
10j
/10k
может быть сложно, поэтому я предлагаю использовать существующие движения, которые я упомянул.вы также можете знать, что вы можете двигаться назад к слову, которое вы видите, делая:
?someword
и вперед к слову, которое вы видите, делая/someword
. Это будет быстрее, чем пытаться двигаться вверх/вниз 10 строк а затем переместите курсор в точное место. Если вы не можете придумать простую строку поиска для рассматриваемой строки, вы всегда можете перейти к номеру строки, как вы сказали (xgg
).