Каждый раз, когда визуальный выбор изменяется в MacVim, он копируется в системный буфер обмена. Это нормально и можно ли его отключить?
2 ответа
Это не стандартное поведение MacVim, но его можно активировать, используя set guioptions+=a
или set go+=a
. Тогда все, что вы выберете, будет скопировано в ваш буфер обмена. Может быть, у вас есть эта строка в вашем .vimrc.
Чтобы деактивировать его, просто используйте set go-=a
или добавьте его в свой .vimrc.
Что вы подразумеваете под
Каждый раз, когда меняется визуальный выбор
?
Вы выбираете foo в foo bar и получаете foo
в буфер обмена, затем передумаете и выбираете вместо него bar и находите bar
вместо foo
в буфере обмена?
Если да, я никогда не сталкивался с таким поведением в MacVim или любом другом родном приложении MacOS X.
Это может произойти в GVim в Linux, где имеется более одного буфера обмена (один из которых содержит выделенный текст), но даже там это будет зависеть от того, как он был скомпилирован.
Нашли ли вы foo
в буфере обмена после изменения его на bar
?
Если да, то это совершенно нормально: изменение строки с помощью p
или c
всегда помещает оригинал в регистр по умолчанию, который соответствует системному буферу обмена в MacVim.
Один из способов обойти эту "проблему" - использовать "_dP
вместо p
. Это означает «удалить выделенный текст в" регистр черной дыры "("_d
), а затем поместить содержимое регистра по умолчанию перед курсором ».
Вы можете использовать аналогичную стратегию для c
: "_di
сделает то же самое, но вместо этого переведет вас в режим INSERT.