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
В качестве бонуса это даст вам легкий доступ к системному буферу обмена.