Чтобы вынуть 7 строк вниз, не перемещая курсор, я могу 7yy
. Можно ли сделать то же самое вверх, не используя макросы или переназначить?
Yank n строк вверх без перемещения
Ответ 1
Вы можете использовать команду :yank
с диапазоном для достижения этого эффекта.
:.-6,.yank
Объяснение диапазона:
-
.
или точка означает текущую строку -
.-6
означает текущую строку минус 6 -
.-6,.
- текущая строка минус 6 в текущей строке - Это может быть сокращено
.-6
до-6
, давая нам-6,.yank
- текущая строка также принимается в конце диапазона, поэтому
-6,yank
- команда yank может быть сокращена до
:y
, давая нам-6,y
Конечная команда:
:-6,y
За дополнительной помощью:
:h :yank
:h [range]
Ответ 2
Вы можете сделать следующее:
6yk6j
Это будет выдержать 6 предыдущих строк и текущий), но курсор будет двигаться. 6j
переходит в предыдущую позицию.
Ответ 3
Вы можете просто вырваться на движение, а затем вернуть курсор в позицию, используя либо '[
, либо ']
.
Янки для 6 строк вверх, плюс ток дает всего 7:
y6u
Затем используйте несколько менее известных меток:
'[ -> to the first character on the first line of
the previously yanked text (or changed)
`[ -> to the first character of the previously yanked text
'] -> to the first character on the last line of yanked text
`] -> to the last character of the preciously yanked text
Итак:
y6u']
y6u`]
Можно ли использовать два решения в зависимости от того, что именно вы хотите. Первый возвращает курсор к первому символу на линии, на которой находился ваш курсор, и последний перемещается к последнему символу на этой строке.
Но есть и другая метка, которая может быть удобной: '^
. Это означает, что последняя позиция была курсором при выходе из режима вставки.
'^ -> moves to the beginning of the last line when leaving insert mode.
`^ -> moves to the exact position where insert mode was last left.
Тогда вот еще два решения:
y6u'^
y6u`^
Это не конец! Если вы притворяетесь продолжением вставки текста, вы можете использовать команду gi
. Он перемещает вас к значку `^
и вводит режим вставки. Тогда мы имеем пятое решение:
y6ugi
Я надеюсь, что одно из них удовлетворит ваши потребности!