в VIM с Xclip, дергать в буфер - PullRequest
13 голосов
/ 09 марта 2011

У меня vim 7.2 (-clipboard -xterm_clipboard ...) в Ubuntu. Вы можете видеть, что это не поддержка буфера обмена. Поэтому я хочу написать небольшой скрипт vim, который копирует выбранный визуальный текст в буфер обмена с помощью инструмента xclip.

Вы знаете, что инструмент xclip работает так:

echo 'hello' | xclip -selection clipboard      #it copies 'hello' into clipboard

И vim может запускать команды оболочки, поэтому я хочу скопировать выбранный визуальный текст куда вместо «привет», но я не знаю, как объединить xclip и vim. Можете ли вы помочь мне реализовать это.

Спасибо за ваше время!

Ответы [ 2 ]

25 голосов
/ 09 марта 2011

Используете ли вы предоставленный дистрибутив vim? Если это так, то пакеты vim-tiny, vim и vim-nox не поддерживают буфер обмена, но существуют в vim-lesstiff, vim-gtk и vim-gnome.

.

Если вы настаиваете на этом,

:'<,'>w !xclip

отправит текущие выбранные строки в xclip, а

:call system('xclip', @0)

отправит последний рывок в xclip.

2 голосов
/ 29 августа 2018

Для меня Vim перестал иметь возможность копировать в регистры * и + по SSH, хотя :echo has('clipboard') был 1, а другие программы X по-прежнему работали.Для меня было решение добавить отображение, которое возвращает (через регистр) в xclip:

vnoremap <silent><Leader>y "yy <Bar> :call system('xclip', @y)<CR>

Я выбираю текст, нажимаю \y, и он попадает в мой локальный буфер обмена.Вы можете изменить используемый регистр, например, c для «буфера обмена» с помощью "yc и @c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...