2011-08-07 2 views
3

Проблема в том, что старый метод работы с буфером X11 (через регистр «plus») не работает в Unity. Кто-нибудь встретил проблему? И как это было решено?Vim at Ubuntu 11.04: Работа с буфером обмена Unity

+1

Попробуйте Ctrl-Shift-V для вставки, Ctrl-Shift-C для копирования. Я думаю, что это взломанный терминал, а не взлом vim. – tjameson

+0

Да, это я знаю. Но метод не полезен при создании макроса, который помещает данные в буфер обмена. И мне нужно справиться именно с такой ситуацией. –

+0

Попробуйте регистр * (звезды). – tjameson

ответ

5

Проблема решается после установки GVim. Тогда регистр «плюс» работает так, как должен.

+1

Я получил GVim с пакетом 'vim-gnome', и это сработало. – chrismar035

+0

То же самое, можно использовать регистр «+» после установки vim-gnome – Piva

0

Я не знаю единство рабочего стола, но я знаю, что он основан на библиотеках гномов. Поэтому, если вы можете использовать dbus для взаимодействия с буфером обмена единицами, вы можете подумать о написании сценария оболочки, который использует dbus для установки содержимого буфера обмена. Этот скрипт может, в свою очередь, получать свой вход от vim, если вы назначили карту команде фильтра. Конечно, это работает аналогично, если вы знаете любую другую утилиту командной строки, которая может устанавливать содержимое буфера обмена. я использовал, чтобы иметь следующие карты в .vimrc для старого DCOP и Klipper (The KDE буфер обмена), которые вы можете настроить:

:vmap k :w! $HOME/.vimclip<CR>:silent execute "!dcop klipper klipper setClipboardContents \"$(cat $HOME/.vimclip)\" &>/dev/null &"<CR>:redraw!<CR>
:nmap z :silent execute "!dcop klipper klipper getClipboardContents > $HOME/.vimclip"<CR>:r $HOME/.vimclip<CR>:redraw!<CR>

Э.Г. для копирования нажмите k после выбора в визуальном режиме. Обратите внимание, что он копирует и проделывает линию.

+0

Спасибо за ответ. Я постараюсь сегодня дома. Интересно, что на рабочем компьютере, где я обновил предыдущую версию, регистр «плюс» все еще работает. Я думаю, это потому, что старые библиотеки были оставлены для обеспечения совместимости со старым программным обеспечением, уже установленным в системе. –

+0

Я не могу проверить карты, потому что у меня нет системы с KDE. Но я вижу идею использовать внешнюю программу в качестве прокси-сервера между буфером обмена Vim и Unity. В любом случае, спасибо! –

0

После этого я столкнулся с проблемой. Должен сказать, что я использую vim в терминале GNOME, а не GVim, который также установлен.

Что интересно, регистр плюса перестал работать примерно одновременно на разных компьютерах.

Во-первых, это была ошибка, потому что графическая версия была установлена ​​по-прежнему. Но в конце я только начал GVim и проверил там регистр плюса. Он работал. После этого регистратор начал работать и в терминале.

Так что если вы снова встретите проблему, когда вы уже установили GVim, просто запустите ее. Это должно помочь.

1

Даже если вы не установили gvim или xterm_clipboard включен, вы можете использовать xsel для управления буфером обмена (установить его через apt-get).

Я надеюсь, что мой сценарий поможет вам: https://github.com/FUT/config-files/blob/master/vim-dotfiles/vim/settings/clipboard.vim

+0

Спасибо. Я попробую это. –

+0

Вы также можете записать содержимое буфера на стандартный ввод другой программы - ': w! Program'.Особенно полезно использовать 'xsel -b' -': w! Xsel -b' для копирования содержимого в буфер обмена, который позволяет вставлять содержимое в другое место, нажимая _Ctrl + V_. –

1

Использование:
sudo apt-get install vim-gtk
Это позволит установить Vim с буфером обмена поддержки.
Запуск по-прежнему:
vim

Смежные вопросы