3

Есть ли способ передать выбранный текст через внешнюю команду в vim, но не заменить выделенный текст выводом? Иногда я хочу скопировать что-то из буфера vim в буфер обмена X, поэтому я использую что-то вроде %!xclip - но тогда мне нужно "отменить" эту команду, чтобы вернуть текст, поскольку xclip ничего не возвращает. Если не считать написания сценария-оболочки вокруг xclip, который также повторяет текст, есть ли лучший способ сделать это?

Спасибо!

2 ответа2

3

Вместо %!xclip

%w !xclip

Обратите внимание на пробел между w и ! , Увидеть

:help :w_c
1

Для копирования в буфер я использую

"*y

Чтобы узнать больше о разнице между "* и "+ , вы можете проверить :h x11-selection. Мне кажется, что актуально следующее:

По умолчанию Xterm всегда записывает видимые варианты как в PRIMARY, так и в CUT_BUFFER0. Когда он вставляется, он использует PRIMARY, если это доступно, или возвращается к CUT_BUFFER0. По этой причине при вырезании и вставке между Vim и xterm вы должны использовать регистр "*. Xterm не использует CLIPBOARD, поэтому "+ не работает с xterm.

Так что я буду придерживаться "* вместо "+ который упоминал Пет , но вы могли бы хорошо проверить, какие из них лучше всего подходят для вашего шаблона использования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .