![vim recortar e colar não funciona no Stretch / Debian 9](https://rvso.com/image/97232/vim%20recortar%20e%20colar%20n%C3%A3o%20funciona%20no%20Stretch%20%2F%20Debian%209.png)
Atualizei aqui alguns servidores VM para o Debian 9.
Agora, ao usar ssh
, não podemos copiar e colar entre terminais remotos.
O cursor parece estar fazendo os movimentos, e marcando o texto, embora de uma forma mais engraçada/diferente do normal, mas nada é copiado além da área de transferência ao fazer comando-C / comando-V ou copiar e colar no respectivo menu .
Também tentamos fazer movimentos do mouse com Shift e outras combinações de teclado, sem resultados positivos.
Isso está acontecendo no OS/X, nomeadamente Sierra e El Capitan, e no Windows, também usando terminais mobaXterm.
A situação se deve à consciência do vim de ter um mouse.
Seguindo outras questões no Stack Overflow, criei /etc/vim/vimrc.local
com set mouse="r"
e set mouse="v
; não funcionou bem.
Finalmente configurei set mouse=""
no mesmo arquivo, com algum sucesso moderado.
No entanto, também não funciona bem 100% do tempo. O que mais pode ser feito?
Responder1
Solução: mude mouse=a
para mouse=r
no seu local .vimrc
.
O problema de definir isso, /usr/share/vim/vim80/defaults.vim
como diz a resposta aceita, é que ele será substituído a cada atualização. Procurei muito e acabei encontrando este:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864074
SOLUÇÃO LOCAL(defeituoso):
A primeira solução é usar arquivos .vimrc locais e configurá-los lá.
Portanto, você poderia criar um .vimrc() local ~/.vimrc
para cada usuário e definir suas opções lá. Ou crie um para /etc/skel
que seja criado automaticamente para cada novo usuário que você criar.
Mas quando você usa arquivos locais .vimrc
, você tem que definir todas as opções lá, porque se houver um local .vimrc
, ele defaults.vim
não será carregado! E se não houver local, .vimrc
todas as suas configurações serão substituídas defaults.vim
.
SOLUÇÃO GLOBAL(preferível):
Eu queria uma configuração global para todos os usuários, que carregasse as opções padrão e depois adicionasse ou substituísse os padrões pelas minhas configurações pessoais.Felizmente existe uma opção para isso no Debian: o arquivo /etc/vim/vimrc.local
será carregado após o arquivo /etc/vim/vimrc
. Assim você pode criar esse arquivo e carregar os padrões, evitando que eles sejam carregados novamente (no final) e depois adicionar suas opções pessoais:
Por favor crie o seguinte arquivo:/etc/vim/vimrc.local
" This file loads the default vim options at the beginning and prevents
" that they are being loaded again later. All other options that will be set,
" are added, or overwrite the default settings. Add as many options as you
" whish at the end of this file.
" Load the defaults
source $VIMRUNTIME/defaults.vim
" Prevent the defaults from being loaded again later, if the user doesn't
" have a local vimrc (~/.vimrc)
let skip_defaults_vim = 1
" Set more options (overwrites settings from /usr/share/vim/vim80/defaults.vim)
" Add as many options as you whish
" Set the mouse mode to 'r'
if has('mouse')
set mouse=r
endif
(Observe que $VIMRUNTIME
usado no trecho acima tem um valor como /usr/share/vim/vim80/defaults.vim
.)
Se você também deseja ativar o "comportamento antigo de copiar/colar", adicione também as seguintes linhas no final desse arquivo:
" Toggle paste/nopaste automatically when copy/paste with right click in insert mode:
let &t_SI .= "\<Esc>[?2004h"
let &t_EI .= "\<Esc>[?2004l"
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
function! XTermPasteBegin()
set pastetoggle=<Esc>[201~
set paste
return ""
endfunction
Responder2
Uma maneira de eliminar o reconhecimento do mouse pelo vim parece ser comentar a configuração do mouse.
Comentei /usr/share/vim/vim80/defaults.vim
a detecção específica do mouse como em:
" In many terminal emulators the mouse works just fine. By enabling it you
" can position the cursor, Visually select and scroll with the mouse.
"if has('mouse')
" set mouse=r
"endif
(nesses arquivos de configuração do vim, " está iniciando um comentário).
A mudança nos permitiu copiar e colar novamente sem problemas.
Concordo com os comentários que esta não é a solução ideal, pois de fato foi substituída em qualquer atualização, a menos que o arquivo de configuração esteja protegido (ou desviado). Na altura, e por especificidades quer de uma versão do pacote, quer da configuração dos servidores onde trabalhava, era o único que funcionava. Como tal, estou deixando esta resposta aqui, esó deve ser usado como solução de último recurso.
Responder3
ODocumentação do Vim para a mouse
opçãodiz
O manuseio xterm dos botões do mouse ainda pode ser usado mantendo a tecla shift pressionada.
Responder4
Muitas pessoas sugeriram :set mouse=a
, mas descobri que só :set mouse=r
permite copiar e colar no Vim no Debian 9. Boa sorte!