Vim: заменить выделение буфером по умолчанию, не перезаписывая буфер

Вот моя проблема:

Я в визуальном режиме.

Я выбираю текст и копирую его в буфер. ((У) апк)

Я выбираю другой текст, который хочу заменить, и вставляю буфер. ((вставить)

Теперь второй выбор был заменен в буфере, однако я хочу, чтобы первый оставался там.

Есть идеи?

1 ответ

Решение

Часто такое поведение полезно. Когда вы не хотите этого, вы можете вместо этого сделать обычное восстановление, затем вставить (официально, 'put') с "0p. Вы можете делать это сколько угодно раз.

Увидеть :help v_p для большего.

Если вы хотите избежать перезаписи, вам нужно сначала удалить. Ты можешь использовать "_ выбрать буфер черной дыры, затем удалить dзатем вставьте перед P и вы избежите установки буфера.

Хотя это технически не отвечает на вопрос (без использования буфера по умолчанию), но устраняет симптом проблемы, поэтому я подумал, что все равно поделюсь. Я обхожу эту проблему путем решения другой проблемы.

Я сопоставил "Копировать, вставить" (скопировать, вставить) из системного буфера обмена в "Ctrl-Shift-C, Ctrl-Shift-V" (Ctrl-C, Ctrl-V, если включен Caps Lock). Его можно использовать вместоy с таким же эффектом.

Если я использую системный буфер для копирования, он не перезаписывается при вставке.

Я добавил это в свой.vimrc

vnoremap <C-V> "*p 
vnoremap <C-C> "*y

В качестве бонуса это даст вам легкий доступ к системному буферу обмена.

Другие вопросы по тегам