В Vim какая разница между регистрами "+
и "*
? Какой из них следует использовать для копирования и вставки в Vim из других приложений? Нужно ли что-то добавлять в файл .vimrc, чтобы эти два регистра работали?
1 ответ
Регистры являются функцией X11; они не специфичны для Linux или даже для Unix, но работают на любой ОС, использующей X11.
Как описано в документации Vim (:help quoteplus
), регистр "+
соответствует выбору «CLIPBOARD» в X11, а регистр "*
соответствует выбору« PRIMARY ».
Более подробное объяснение:
Графическая среда X11 поддерживает несколько буферов, подобных буферам обмена, которые называются выборками. Есть три стандартных, два из которых широко используются:
PRIMARY
выбор обновляется каждый раз, когда вы выбираете текст. Чтобы вставить из него (в графических программах), нажмите среднюю кнопку мыши или используйте Shift Insert. В Vim он доступен через регистр"*
.Выбор
CLIPBOARD
обновляется, когда вы явно вырезаете или копируете что-либо (текст или другие данные). Другими словами, он используется так же, как буфер обмена Windows или Mac OS. Чтобы вставить из него, обычный ярлык Ctrl V в графических программах. В Vim он доступен через регистр"+
.
Вам не нужны никакие специальные настройки для их использования; однако ваш Vim должен быть настроен на поддержку X11 (ищите +X11
в vim --version
), и - очевидно - регистры работают только внутри X11.
Однако не имеет значения, используете ли вы графический интерфейс или терминальную версию Vim. (В Arch Linux пакет gvim
предоставляет версии с графическим интерфейсом и терминалом с включенной поддержкой X11.)
Ресурсы:
- X выборки, вырезанные буферы и кольца уничтожения
- Vim документация
:help quoteplus