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

106

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

javalearner
источник

Ответы:

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, ты красивый человек
Джонатан Дюмэн
10

Добавьте эту строку в свой .vimrc

" Make Y yank till end of line
nnoremap Y y$

Подробнее на моем vimrc .

Энди Рэй
источник
3

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

Даниэль Порумбель
источник
1
Почему бы не Ду и оставить файл без изменений? (примечание: это включает новую строку)
ген