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
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
comset 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 comcmd + 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:
- 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; - 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 comset mouse=a
ativado ).
vim
é capaz de ir direto para a Seleção primária usando o verboy
. Eu não ‘ não sei por que você não ‘ simplesmente usar isso.