Vim: постоянный буфер поиска между экземплярами vim (в Ubuntu) - PullRequest
4 голосов
/ 01 февраля 2011

У меня есть два отдельных экземпляра Vim. Я хотел бы настроить свою систему таким образом, чтобы при поиске something в одном Vim (используя /, ?, * или #), а затем нажмите n или N в другой Vim ищет тот же something во втором Vim. Я использую Ubuntu.

Я уже использую основной системный буфер обмена для вещей, которые вытащил в vim, используя set clipboard=unnamed в моем файле .vimrc.

Исследования пока
Инструмент командной строки "xsel" позволяет мне получить доступ к трем различным буферам обмена в Ubuntu: основной буфер обмена (используется при выделении текста и щелчке средней кнопкой мыши для вставки), буфер обмена буфер обмена используется для Ctrl + C, Ctrl + V и т. д.) и вторичный буфер обмена (который, кажется, не используется). Сейчас я думал, что Vim использует xsel для установки вторичного буфера обмена, когда используются /, ?, * или #, и использует xsel для доступа к тому же буферу обмена, когда n или N нажаты.

Ответы [ 3 ]

3 голосов
/ 01 февраля 2011

Я собирался просто опубликовать код, который я собрал для этого здесь, но затем решил связать его в крошечный плагин: https://github.com/dahu/VimSharedSearch

1 голос
/ 01 февраля 2011

При установленном clipboard=unnamed вы можете копировать между регистром последнего шаблона (последним, что вы искали) и общим буфером обмена, используя let @/=@* и let @*=@/ (* - буфер обмена, а / является последним шаблоном).

Таким образом, вы можете затем создать функцию, которая копирует последний шаблон в буфер обмена и сопоставляет его с /, ?, * или #, а другую - копирует буфер обмена в последний шаблон для n или N.

0 голосов
/ 01 февраля 2011

Не совсем то, что вы просили, но я использую разделенные окна (:sp или :vsp) для этой цели.

...