Например
Как я могу вытащить и вставить строку 4 только в строку 12, не перемещая курсор на строку 4?
Например
Как я могу вытащить и вставить строку 4 только в строку 12, не перемещая курсор на строку 4?
Ответы:
Если курсор уже находится в строке 12, то простой
: 4y п
делает это для меня.
x
? Когда я пытаюсь, :4x
я получаю E140: Use ! to write partial buffer
. Благодарность!
:4d
Как насчет этого: курсор находится в строке 11, вы находитесь в режиме "vi".
:4co.<return>
Вы также можете сделать это с помощью шаблона:
:/^Yank/co.<return>
Вы можете использовать «mo» (переместить) вместо «co» (копировать), чтобы просто переместить строку вместо yank и put.
:4t.
Другие уже упоминали самый прямой способ сделать это, :4y
но я хочу добавить две заметки об этом, которые могут быть полезны:
Во-первых, если вы введете текст, :help range
вы узнаете все об использовании диапазонов для применения к командам в стиле Ex. ОЧЕНЬ полезно во многих случаях и гораздо более универсально, чем использование номеров строк. Например, если вы хотите восстановить первую строку, начинающуюся с «yank» после начала документа (даже если она находится в первой строке), используйте :0/^yank/y
. Самая мощная часть диапазонов - это возможность комбинировать их, например, :./^Chapter/+50?Pete?d
означает «Найти следующую строку, чтобы начать со слова Глава (поиск вперед от текущей строки), затем перейти на 50 строк вперед и найти слово Пит назад». и удалите первую строку, в которой вы найдете его. " За исключением того, что он на самом деле не двигает курсор, он просто делает то, что вы говорите.
(Я использовал этот тип спецификации диапазона, чтобы автоматизировать создание документации, включающей в себя поиск имени функции под курсором, затем поиск вперед следующей строки с надписью «Description» и возврат ее в определенный регистр ... и т. Д.)
Другой совет, что вы должны знать о прыжках. Напечатайте, :help jump-motions
чтобы узнать об этом полностью, но способ, которым это здесь связано, заключается в том, что вы можете перейти к строке 4, вернуть ее, а затем ВЕРНУТЬСЯ 4Gyy''
(или использовать обратные тики вместо апострофов, чтобы вернуться к вашей точной стартовой позиции, а не просто к той же ЛИНИЯ Вы начали в.)
Кратчайший:
:1t.
копирует первую строку ниже текущей
С диапазонами:
:1,4t.
копирует строки с 1 по 4 (включительно) ниже текущего.
Также возможно с относительными номерами строк:
:-1t.
копирует предыдущую строку ниже текущей.
В вашем примере :4t-1
скопируйте четвертую строку ниже требуемой строки.
Примечание: :t
это синоним :co[py]
команды.