Копіювати-вставити для vim не працює, коли миша (: встановлена ​​миша = a) увімкнена?


52

Я намагався скопіювати вставити щось з vim в інший додаток, а також, з цього додатка до vimвикористання правою кнопкою миші, а потім скопіюйте та вставіть (або з Ctrl+ vі Ctrl+, cа також спробував Commandверсію для Mac OSX, очевидно.). Однак, коли я намагаюся це робити, воно лише копіює перше слово, коли я це роблю з vimабо коли я копіюю з програми на vim, він копіює все, але вставляє дивні вкладки та пробіли. Я думаю, що це сталося, коли я вирішив увімкнути мишу в терміналі. А саме:

:set mouse=a

Я маю цей рядок у своєму .vimrcфайлі на iTerm (mac os x). Хоча, чи можна зробити мою пасту для копіювання з іншими програмами, які не vimперериваються з mouse=aввімкненим? Або принаймні можна відключити мишу, поки я роблю пасту для копіювання? Я робив :helpмишу, але коментарі не були корисними для мене. Я б вставив їх сюди, але ... мій інструмент для копіювання вставлено!

Я спробував :set mouse!і , :set mouse=a!але вони не зробили нічого корисного ... :(


Додаткова інформація мого оточення:

Я також використовую tmux більшу частину часу, хоча я перевірив цю помилку / помилку без tmux сесії, тому я розмістив це в основному як питання vim.


4
Я можу вам сказати, що vimздатний добре перебирати Первинний відбір за допомогою yдієслова. Я не знаю, чому ви б не просто використали це.
HalosGhost

1
Я б цього не зробив, бо не знаю, як це зробити, гадаю, вибачте за свою некомпетентність. Я навіть не знав, що існує, поки ти не згадав про це. Будь ласка, поділіться своїми знаннями! :)
Буратіно


ні, це не просто його iTerm (як я вже згадував у запитанні, але хороший запитання, хоча).
Буратіно

Відповіді:


66

mouse=a запобігає можливості копіювання та вставлення з vim з читабельних символів.

Зміна mouse=aдо mouse=rі що повинно вирішити проблему з цим.

мені цікаво одне, чи ви змінюєте конфігураційний файл для свого vim за допомогою миші, встановленої на mouse = a?

оригінальна відповідь ^

Якщо вам mouse=rне надано всі попередні параметри копіювання, змініть її наmouse=v

Обидва mouse=rі mouse=vмають ті самі функції, які вам потрібні, але залежно від vimrc, який ви використовуєте, одна працюватиме краще, ніж інша.


також ви спробували виділити текст і скористатися середньою кнопкою миші, щоб перейти в інше місце. що має тенденцію працювати краще, коли tryng до Ctrl + v та Ctrl + c
bgrif

Я не знаю, що означає ваше запитання: one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a?Ви маєте на увазі, якщо я :mouse=aввімкнув у своєму файлі .vimrc? У мене є :mouse=aфайл .vimrc.
Піноккіо

1
просто --with-x=yes? Мені не потрібно ставити :set --with-x=yes mouse=aчи щось? Чи можете ви пояснити, що ви маєте на увазі?
Буратіно

1
Дозвольте мені досліджувати , якщо вам потрібно об'єднати --with-x=yesв set mouse=a. Коли я читав на ньому все, що я бачив, це було саме по собі у конфігураційному файлі. Але це може бути інакше, тому я хочу переконатися, що я скажу вам правильну річ, яка буде працювати для вас.
bgrif

1
Велике спасибі, ця пропозиція працює як шарм з мишкою = v
Pamungkas Jayuda

21

Для користувачів ОС X: Щоб скопіювати пасту за mouse=aдопомогою, altа не Shiftдля вибору тексту. Тоді cmd-cі cmd-vпрацюй, як очікувалося.

Знайшов цю відповідь тут https://stackoverflow.com/a/4608387/671639 після великої кількості гугла.


Ти Бог ......: ')
omerjerk

єдине, що працювало на мене, дякую!
Дон

3
Для мене на OSX працює "fn" замість "shift" або "alt".
ssasa

8

З https://stackoverflow.com/questions/4608161/copy-text-out-of-vim-with-set-mouse-a-enabled/4608387

Натискаючи клавішу "shift", вибираючи мишу. Це призведе до того, що вибір миші веде себе так, як ніби миша = a не була включена.

Це працює і перевірено рецензентами переповнення стека, які прийняли це як відповідь :)


6

Рішення Bharath , натиснувши Shiftпід час копіювання, зробить це, але воно скопіює більше, ніж ви хотіли б скопіювати у разі нумерації чи хеш-коментарів.

Один із способів зробити це навіть за допомогою миші = a - це використовувати візуальний режим, натискаючи Vна один курсор або Shift+ Vдля виділення повної лінії, і ви можете рухатися стрілками вгору або вниз і використовувати Yдля копіювання або Dвирізання, і це повинно працювати.


@Anthon, Зробимо, дякую за уточнення.
amrx

1
Я перефразував ваш самовиражений коментар, щоб зробити його більше схожим на відповідь, так модники, ймовірно, залишать його таким, яким він є (і ви можете отримати певну репутацію на ньому, щоб ви могли коментувати). Якби оригінал був меншим виправленням, коментування було б більш доречним.
Антон

5

Була така ж проблема: не вдалося виділити за допомогою миші, тому не вдалося скопіювати та вставити з VIM під час сеансу терміналу до документа та браузера Windows.

: set clipboard=unnamedplus
: set mouse=r

4

Посилання: http://vimdoc.sourceforge.net/htmldoc/options.html

Подивіться на розділ Примітка внизу посилання:
Увімкнувши мишу, кнопки миші все ще можна використовувати, утримуючи натиснутою клавішу зсуву. Сюди входить копіювання вставлення за допомогою кнопок миші.

*'mouse'* *E538*
'mouse'         string  (default "", "a" for GUI, MS-DOS and Win32)
            global
            {not in Vi}
    Enable the use of the mouse.  Only works for certain terminals
    (xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with
    sysmouse and Linux console with gpm).  For using the mouse in the
    GUI, see |gui-mouse|.
    The mouse can be enabled for different modes:
        n   Normal mode
        v   Visual mode
        i   Insert mode
        c   Command-line mode
        h   all previous modes when editing a help file
        a   all previous modes
        r   for |hit-enter| and |more-prompt| prompt
    Normally you would enable the mouse in all four modes with:
        :set mouse=a
    When the mouse is not enabled, the GUI will still use the mouse for
    modeless selection.  This doesn't move the text cursor.

    See |mouse-using|.  Also see |'clipboard'|.

    Note: When enabling the mouse in a terminal, copy/paste will use the
    "* register if there is access to an X-server.  The xterm handling of
    the mouse buttons can still be used by keeping the shift key pressed.
    Also see the 'clipboard' option.

1
Дякуємо, що надали цю посилання, але чи відповідає вона на питання ? Якщо так, чи можете ви визначити частину цитати, яка це робить, подаючи резюме фактичної відповіді?
G-Man каже: "Відновіть Моніку"

0

Що стосується другої частини вашого запитання, де у вас вказано, що при вставці з інших програм vim він додає вкладки / пробіли. Спробуйте додати це до своєї пасти ~ / .vimrc set або in vim перед вставкою у звичайному режимі, натисніть "shift" + ":" та введіть "set paste"


0

Ви можете використовувати yдля копіювання (yank) та pвставлення навіть із :set mouse=aвстановленим ~/.vimrc. Використовуйте v+, arrow keysщоб виділити текст. Щоб швидко скопіювати весь рядок, використовуйте shift+ y.



0

Скористайтеся цими двома рядками нижче, ~/.vimrcщоб використовувати всі приємні функції а gui-mouseта вставити в системний буфер обміну за допомогою y(клавіша yank), якщо вам не потрібні додаткові буфери буфера обміну:

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