vim recortar e colar não funciona no Stretch / Debian 9

vim recortar e colar não funciona no Stretch / Debian 9

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.localcom 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=apara mouse=rno seu local .vimrc.

O problema de definir isso, /usr/share/vim/vim80/defaults.vimcomo 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 ~/.vimrcpara cada usuário e definir suas opções lá. Ou crie um para /etc/skelque 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.vimnão será carregado! E se não houver local, .vimrctodas 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.localserá 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 $VIMRUNTIMEusado 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.vima 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 mouseopçã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=rpermite copiar e colar no Vim no Debian 9. Boa sorte!

informação relacionada