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

Eu estava tentando copiar e colar algo do vim para outro aplicativo e também desse aplicativo para vim usando clique com o botão direito do mouse e copie e cole (ou com Ctrl + v e Ctrl + c e também tentei a versão do Command para mac OSX, obviamente.). No entanto, quando tento fazer isso, ele apenas copia a primeira palavra quando faço isso de vim ou quando copio do aplicativo para vim, ele copia tudo, mas insere tabulações 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). Porém, é possível fazer minha cópia colar com outros aplicativos que não estão em vim para não quebrar com o mouse=a ativado? Ou é pelo menos possível desligar o mouse enquanto copio e colo? Usei :help o mouse, mas os comentários não foram úteis para mim. Gostaria de colá-los aqui, mas … minha ferramenta de copiar e colar está quebrada!

Eu tentei :set mouse! e :set mouse=a! mas eles não fizeram nada de útil … 🙁


Informações adicionais do meu ambiente:

Eu também estou usando o tmux na maioria das vezes, embora testei este erro / bug sem uma sessão tmux, é por isso que postei isso principalmente como uma pergunta do vim.

Comentários

  • Posso te dizer que vim é capaz de ir direto para a Seleção primária usando o verbo y. Eu não ‘ não sei por que você não ‘ simplesmente usar isso.
  • Eu não ‘ não faria isso porque eu não ‘ não sei como fazer isso, acho, desculpe-me por minha incompetência. Eu não ‘ nem sabia que existia até você mencioná-lo. Compartilhe seu conhecimento! 🙂
  • Isso é macvim ?
  • não, não é apenas iTerm (como mencionei na pergunta, mas é uma boa pergunta).
  • @Pinocchio – dê uma olhada aqui: Como para fazer vim colar de (e copiar para) o sistema ‘ área de transferência? .

Resposta

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

Alterar mouse=a a mouse=r e isso deve resolver o seu problema com isso.

uma coisa que estou me perguntando é, você está alterando o arquivo de configuração do seu vim com o mouse definido para mouse = a?

resposta orignal ^

Se mouse=r não fornece todas as opções de cópia anterior, altere para mouse=v

Ambos mouse=r e mouse=v têm as mesmas funções que você precisa, mas dependendo do vimrc que você está usando, um funcionará melhor que o outro.

Comentários

  • você também tentou realçar o texto e usar o botão do meio do mouse para colar em outro lugar. Isso tende a funcionar melhor ao tentar Ctrl + v e Ctrl + c
  • Eu não ‘ não sei o que sua pergunta significa: one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a? Você quer dizer se eu tiver :mouse=a ativado em meu arquivo .vimrc? Eu tenho :mouse=a em meu arquivo .vimrc.
  • apenas --with-x=yes? Não preciso colocar :set --with-x=yes mouse=a ou algo assim ing? Você poderia esclarecer o que quer dizer?
  • Deixe-me pesquisar se você precisa combinar --with-x=yes com set mouse=a. Quando eu estava lendo sobre isso, tudo o que vi foi que estava sozinho no arquivo de configuração. Mas pode ser diferente, então quero ter certeza de que direi a coisa certa que funcionará para você.
  • Muito obrigado, essa sugestão funcionou perfeitamente com mouse = v

Resposta

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

Encontre esta resposta aqui https://stackoverflow.com/a/4608387/671639 depois de muito pesquisar no Google.

Comentários

  • Você é Deus … …: ‘)
  • a única coisa que funcionou para mim, obrigado!
  • Para mim no OSX funciona ” fn ” em vez de ” shift ” ou ” alt “.
  • Definir mouse=v funcionou para mim com cmd + c

direto h2> Resposta

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

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 stack-overflow que aceitaram isso como resposta 🙂

Resposta

Tive o mesmo problema: não conseguia realçar usando o mouse, portanto, não era possível copiar e colar do VIM em uma sessão de terminal para o documento e navegador do Windows: Será que o a seguir e agora funciona:

: set clipboard=unnamedplus : set mouse=r 

Resposta

A solução de Bharath , pressionando Shift durante a cópia, fará isso, mas copiará mais do que você gostaria de copiar no caso de numeração ou comentários hash.

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

Comentários

  • @Anthon, vou fazer, obrigado pelo esclarecimento.
  • Eu reformulei sua própria comentário pronunciado para torná-lo mais parecido com uma resposta, de forma que os mods provavelmente deixarão como está (e você pode ganhar alguma reputação sobre isso para que possa comentar). Se o original fosse uma correção menor, comentar seria mais apropriado.

Resposta

Consulte: http://vimdoc.sourceforge.net/htmldoc/options.html

Observe a seção de notas na parte inferior da referência:
Quando habilitando o mouse, os botões do mouse ainda podem ser usados mantendo a tecla shift pressionada. Isso inclui copiar e 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. 

Comentários

  • Obrigado por contribuir com essa referência, mas , ele responde à pergunta ? Em caso afirmativo, você pode identificar a parte da citação que faz isso, apresentando um resumo da resposta real?

Resposta

No meu Mac, o que ajudou foram essas duas coisas:

  • : set mouse- = a
  • fn + clique (em vez de shift ou alt)

Resposta

Use estas duas linhas abaixo em seu ~/.vimrc para usar todos os recursos interessantes de um 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 

Resposta

Você pode usar y para copiar (arrancar) 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 .

Resposta

Como f ou a segunda parte da sua pergunta em que você especificou que ao colar de outros aplicativos para o vim, ele adiciona tabulações / espaços. Tente adicionar isso ao ~ / .vimrc definir colar ou no vim antes de colar no modo normal pressione “shift” + “:” e digite “definir colar”

Resposta

Duas coisas a adicionar:

  1. Esteja ciente muitas vezes set mouse=v não funcionará como esperado dependendo do outras diretivas que você definiu antes ou depois em seu arquivo .vimrc, também depende de qual terminal você está executando o vim;
  2. Eu recomendaria manter mouse=a para que você tenha todo o modo de mouse habilitado ao mesmo tempo e use o truque proposto por @BHS para destacar o texto enquanto pressiona a tecla Shift quando você precisa colar o texto destacado usando o meio do mouse botão ( Copiar texto fora do Vim com set mouse=a ativado ).

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *