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