Неможливо скопіювати у буфер обміну з Vim


28

Я запускаю Vim 7.3 під Linux Mint 13 (використовуючи MATE), і я не в змозі зберегти текст у системний буфер обміну. Я запускаю Vim в терміналі і копіюю текст з терміналу за допомогою CTRLINSERT. Коли я вибираю текст у Vim (або мишкою, або у візуальному режимі), CTRLINSERTне копіює жодного тексту. Крім того, коли я клацну правою кнопкою миші, копія буде сірою. Крім того, я не можу записатись у системний буфер, потягнувшись до відповідного реєстру за допомогою команд vim. Однак я можу вставити в режимі вставки (використовуючи SHIFTINSERTабо вставити правою кнопкою миші). Я також можу скопіювати текст безпосередньо з терміналу, використовуючи ту саму техніку, тільки не текст з Vim.

Ось мій поточний ~ / .vimrc . Відповідна частина є найімовірнішою set clipboard=autoselect,unnamed,exclude:cons\|linux. Якщо я ставлю finishу верхній частині свого ~ / .vimrc, у мене те саме питання, тож я думаю, що лінія неправильна, але я намагався set clipboard=unnamedі мав таку ж поведінку.

Чи може бути інший файл конфігурації, що впливає на поведінку Віма? Як я можу змінити свій ~ / .vimrc, щоб дозволити копіювати текст з Vim?

Відповіді:


55

Я вважаю, що проблема вашої копіювання викликана:

mouse=a 

у вашому .vimrc Це налаштовує ваш vim у візуальний режим, коли ви вибираєте щось за допомогою миші. І з якихось божевільних причин забороняється копіювати, коли знаходиться у візуальному режимі. Її можна обійти, утримуючи зсув, вибираючи текст, щоб не переходити у візуальний режим, що дозволяє використовувати меню копіювання.

або ви можете змінити на:

:set mouse=v

і копія працюватиме знову. додайте його у файл ~ / .vimrc, якщо ви хочете, щоб він був постійним


2
Хоча це насправді може вирішити їх проблему, пояснення, чому це працює, було б кориснішим. Без цього ваша відповідь - це просто сказати комусь натиснути Зелену кнопку двічі - Це може спрацювати, можливо, не, але це не просвітить їх.
voretaq7

Дякую, що вирішили це. Пояснення, яке ви додали після коментаря voretaq7, теж дуже допомогло!

Це працює і для Cygwin.
Дейв Джарвіс

1
Цей режим виділить все, тому, якщо я хочу скопіювати кілька рядків, я також копіюю номери рядків та весь порожній пробіл після кожного рядка до кінця екрана. Чи є спосіб, щоб він лише обрав відповідний контент (саме так працює підсвітка mouse=a)?
Денніс

Гарна відповідь. Просто плюс: більше режимів миші тут:help mouse
д-р Беко,

10

sudo apt-get install vim-gtk швидше за все, вирішить цю проблему для інших Google.

Добрий ol 'термінальний стиль vim не має доступу до буфера обміну, який є частиною системи X windows. Встановлення vim-gtkнадає vim доступ, необхідний для зміни та перегляду буфера обміну.


2
Працює! На Debian Buster (зараз тестується) я встановив vim-gtk, і тоді мій командний рядок vim у xterm дозволив мені використовувати буфери *та +буфери для доступу до буферів вікон x Установка vim-gtk використовує альтернативи Debian для встановлення vim -> /usr/bin/vim.gtk.
RobertL

0

Термінал нічого не знає про вибір vim, тому не сподівайтеся, що це допоможе. Вам знадобиться побудувати vim проти X (наприклад gvim -v), а потім потягнути за собою і поставити з +реєстру.


3
vim-gtkПакет в Ubuntu містить буфер обміну підтримки (навіть якщо виконується , як vimв терміналі).
mgorven

Погоджено та підтверджено на Debian Buster (зараз на тестуванні), я встановив vim-gtk, і тоді мій командний рядок vim у xterm дозволив мені використовувати буфери * та + для доступу до буферів вікон x. Установка vim-gtk використовує альтернативи Debian для встановлення vim -> /usr/bin/vim.gtk.
RobertL

0

просто gvimв Arch linux, якщо хтось хоче знати. Також перегляньте neovimpython-neovim&& python2-neovimдля Вас підтримка, і т.д.)


Спробуйте використовувати gvim через ssh.
hopeseekr
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.