Например

Как я могу вытащить и вставить строку 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]команды.