Ответ 1
Синтезируя ответы superuser, просто добавьте следующее к .vimrc
autocmd VimLeave * call system("xsel -ib", getreg('+'))
Когда я открываю Vim из терминала, копирую текст в системный буфер обмена и выхожу из Vim, системный буфер обмена очищается.
Как сохранить скопированный текст в буфер обмена?
Синтезируя ответы superuser, просто добавьте следующее к .vimrc
autocmd VimLeave * call system("xsel -ib", getreg('+'))
Установите Parcellite или glipper для Gnome и klipper для KDE.
Перезагрузите компьютер или запустите его вручную.
Пожалуйста, поправьте меня, если я ошибаюсь, но из моего понимания Vim...
1) Vim использует регистры вместо буфера обмена для хранения скопированных/вырезанных данных.
2) Эти регистры сохраняются при выходе из vim в файл состояния, но не доступны за пределами запущенного процесса, если вы вручную не открываете файл и не проверяете его содержимое
3) Сохранение материала в регистре +, в то время как Vim run позволяет вставлять в другие приложения.
4) После приостановки vim (CTRL-Z), а не закрытия, эти регистры все еще доступны.
Помогает ли это?
На основе Matt answer следующее использование xclip
вместо xsel
:
autocmd VimLeave * call system('echo ' . shellescape(getreg('+')) . ' | xclip -selection clipboard')