Как скопировать из текущей позиции в конец строки в vi


106

Я использую gvim в windows. Как скопировать текст из текущей позиции в конец строки в vi и вставить его в другой файл, открытый в vi. Я погуглил, но не могу найти для этого никакого решения. Благодарим за любую помощь в этом вопросе. Спасибо.

Ответы:


160

Команда нормального режима для перехода к концу строки - $.

Вы можете скопировать в конец строки с помощью y$и вставить с помощью p.

Для копирования / вставки между разными экземплярами вы можете использовать системный буфер обмена, выбрав *регистр, так что команды становятся "*y$для копирования и "*pдля вставки.

$ переход к строке

$

y$ переход к разрыву строки

y,$

"*y$ выбрать регистр буфера обмена yank-to-linebreak

", *, y,$

"*p выберите вставку из буфера обмена

", *,p

Проверьте :h registersдополнительную информацию.


Спасибо. но я хочу вставить содержимое в «другой файл», открытый в vi. Это работает только с тем же файлом.
javalearner

4
Это будет работать для любого файла, открытого в одном экземпляре. Вы можете скопировать в системный буфер обмена, выбрав регистр *(или +).
Дон Реба

Почему система регистрирует не может работать ... Я не могу скопировать контекст file1для file2. Мне все еще нужно использовать мышь. В чем, наверное, может быть причина?
Alston

8
Обычно я использую, Dчтобы вырезать из текущей позиции до конца и pвставить (восстановить) исходные данные, а затем переместиться в другое место, чтобы вставить извлеченные данные. Просто потому, что печатать гораздо проще, Dчем y$.
neevek

1
@PhilipRego, это y$без точки с запятой.
Дон Реба

45

Если вы не хотите включать разрыв строки с рывком, вы можете использовать yg_. (Или в вашем случае "*yg_)

По сути, просто осознайте разницу между $и в отношении g_движений. Это помогало мне во многих случаях.


3
Есть ли способ поменять местами g_и $? Я редко, если вообще когда-либо, нуждаюсь в переносе строки в движения.
Джонатан Дюмен

1
ДА! лишняя новая строка сводит меня с ума. Это необходимая информация.
javadba

6
@JonathanDumaine в вашем $MYVIMRCдобавлении строкиnmap $ g_
thedanotto

@thedanotto, ты красивый человек
Джонатан Дюмэн


3

Другое решение: Dpи приклеить с помощью p. Фактически это сначала удаляет до конца строки и повторно вставляет в то же место. Вставьте его в другое место с помощью p.


1
Почему бы не Ду и оставить файл без изменений? (примечание: это включает новую строку)
ген
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.