Copiar e colar para o vim não está funcionando quando o mouse (: set mouse = a) está ativado?

40

Eu estava tentando copiar e colar algo do vim para outro aplicativo e também, desse aplicativo para vim usando o botão direito do mouse e depois copiando e colando (ou com Ctrl + v e Ctrl + c e também tentou a versão do Comando para o mac OSX, obviamente. No entanto, quando tento fazer isso, só copia a primeira palavra quando faço isso de vim ou quando copio do aplicativo para vim , copia tudo, mas insere guias e espaços estranhos. Acho que isso aconteceu quando decidi colocar meu mouse no terminal. Como em:

:set mouse=a

Eu tenho essa linha no meu arquivo .vimrc no iTerm (mac os x). No entanto, é possível fazer a minha cópia colar com outros aplicativos que não estão em vim para não quebrar com o mouse=a on? Ou é possível, pelo menos, desligar meu mouse enquanto faço a cópia? Eu fiz :help mouse, mas os comentários não foram úteis para mim. Eu os colaria aqui, mas ... minha ferramenta de copiar e colar está quebrada!

Eu tentei :set mouse! e :set mouse=a! , mas eles não fizeram nada útil ...: (

Informações adicionais do meu ambiente:

Eu também estou usando o tmux a maior parte do tempo, no entanto, eu testei este erro / bug sem uma sessão do tmux, por isso eu postei isso principalmente como uma questão vim.

    
por Pinocchio 27.06.2014 / 21:12

9 respostas

52

mouse=a impede a capacidade de copiar e colar do vim com caracteres legíveis.

Altere mouse=a para mouse=r e isso deve corrigir seu problema com isso.

uma coisa que eu estou querendo saber é, você está mudando o arquivo de configuração para o seu vim com o mouse configurado para mouse = a?

resposta original ^

Se mouse=r não der a você todas as opções de cópia passada, altere-a para mouse=v

Tanto mouse=r como mouse=v têm as mesmas funções que você precisa, mas dependendo do vimrc que você está usando, uma funcionará melhor que a outra.

    
por 03.07.2014 / 17:24
17

Para usuários do OS X: Para copiar, cole com mouse=a use alt em vez de Shift para selecionar o texto. Então, cmd-c e cmd-v funcionam como esperado.

Encontrou esta resposta aqui link depois de muito googling.

    
por 15.09.2015 / 07:55
6

De link

Pressione a tecla 'shift' enquanto seleciona com o mouse. Isso fará com que a seleção do mouse se comporte como se mouse = a não estivesse habilitado.

Isso funciona e foi verificado pelos revisores do estouro de pilha que aceitaram isso como resposta:)

    
por 26.02.2015 / 07:36
6

A solução de Bharath, pressionando Shift enquanto copia copiará mais do que você gostaria de copiar no caso de numeração ou hash de comentários.

Uma maneira de fazer isso, mesmo com mouse = a , é usar o modo visual pressionando V para o cursor único ou Shift + V para realçar toda a linha, e você pode mover para cima ou para baixo com setas e usar Y para copiar ou D para cortar e isso deve funcionar.

    
por 02.04.2015 / 14:54
3

Consulte: link

Observe a seção Nota na parte inferior da referência:
Ao ativar o mouse, os botões do mouse ainda podem ser usados mantendo a tecla Shift pressionada. Isso inclui copiar colar usando os botões do mouse.

*'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.
    
por 23.02.2015 / 19:18
3

Tive o mesmo problema: não foi possível destacar o uso do mouse, portanto, não foi possível copiar e colar do VIM em uma sessão de terminal para o documento e navegador do Windows: Fiz o seguinte e agora funciona:

: set clipboard=unnamedplus
: set mouse=r
    
por 27.09.2017 / 19:59
0

Quanto à segunda parte da sua pergunta, onde você especificou que ao colar de outros aplicativos para o vim, ele adiciona tabulações / espaços. Tente adicionar isso ao seu ~ / .vimrc conjunto colar ou no vim antes de colar no modo normal pressione "shift" + ":" e digite "set paste"

    
por 11.07.2014 / 18:43
0

Use estas duas linhas abaixo em ~./vimrc para usar todos os recursos interessantes de gui-mouse e cole na área de transferência do sistema usando y (tecla yank) se você realmente não precisar de nenhum buffer adicional da área de transferência:

set mouse=a
set clipboard=unnamed
    
por 27.06.2018 / 19:24
0

Você pode usar y para copiar (yank) e p para colar mesmo com :set mouse=a definido em ~/.vimrc . Use v + arrow keys para destacar o texto. Para copiar uma linha inteira rapidamente, use shift + y .

    
por 23.08.2018 / 03:01

Tags