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

25

Atualizamos 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, ainda que de um modo mais divertido / diferente do usual, mas nada é copiado para a área de transferência ao fazer o comando-C / command-V ou copiar e colar o respectivo menu.

Também tentamos fazer os movimentos do mouse com Shift e outras combinações de teclado, sem resultados positivos.

Isso está acontecendo no OS / X, a saber, Sierra e El Capitan, e no Windows, usando terminais mobaXterm também.

A situação deve-se à consciência do vim de ter um rato.

Após outras perguntas no Stack Overflow, criei /etc/vim/vimrc.local com set mouse="r" e set mouse="v ; não funcionou bem.

Por fim, configure 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?

    
por Rui F Ribeiro 25.10.2016 / 17:29

5 respostas

17

A solução é, na verdade, definir a opção mouse=a to mouse=r .

O problema em definir isso no /usr/share/vim/vim80/defaults.vim , como diz a resposta aceita, é que ele será sobrescrito em todas as atualizações. Eu procurei por um longo tempo e acabei nessa: link

A solução da primeira maneira é usar arquivos .vmrc locais e configurá-los lá. Então você pode criar um local .vimrc ( ~/.vimrc ) para cada usuário e definir suas opções lá. Ou crie um em /etc/skel para que ele seja criado automaticamente para cada novo usuário que você criar.

Mas quando você usa arquivos .vmrc locais, precisa definir todas as opções, porque se houver um local .vimrc , o defaults.vim não será carregado de jeito nenhum! E se não houver nenhum local .vimrc , todas as suas configurações serão sobrescritas de defaults.vim .

Eu queria uma configuração global para todos os usuários, que carrega as opções padrão e então adiciona ou substitui os padrões com minhas configurações pessoais. Felizmente há uma opção para isso no Debian: O /etc/vim/vimrc.local será carregado após o /etc/vim/vimrc . Assim, você pode criar esse arquivo e deixar os padrões serem carregados, impedindo que eles sejam carregados novamente (no final) e, em seguida, 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 /usr/share/vim/vim80/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

Se você também quiser ativar o "comportamento antigo de copiar / colar", adicione 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
    
por 11.10.2017 / 15:44
27

Uma maneira de cortar o efeito do mouse parece estar comentando a configuração do mouse.

Em /usr/share/vim/vim80/defaults.vim , comentei 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 alteração nos permitiu copiar e colar novamente sem problemas.

Eu concordo com os comentários que esta não é a solução ideal, devido a ser realmente sobrescrita em qualquer atualização, a menos que o arquivo de configuração esteja protegido (ou desviado). Na época, e devido a especificidades de uma versão do pacote ou da configuração dos servidores em que eu trabalhava, era o único que funcionava. Assim, estou deixando esta resposta aqui e ela deve ser usada apenas como uma solução de último recurso .

    
por 25.10.2016 / 17:29
8

A documentação do Vim para a opção mouse diz

The xterm handling of the mouse buttons can still be used by keeping the shift key pressed.

    
por 25.07.2017 / 10:35
3

Você pode desabilitar isso sem alterar os arquivos do sistema, criando /etc/vimrc.local e inserindo o seguinte:

set mouse=
    
por 23.08.2017 / 04:50
0

Muitas pessoas sugeriram :set mouse=a , mas descobri que apenas :set mouse=r permite copiar & paste no Vim on Debian 9. Boa sorte!

    
por 02.08.2018 / 17:16

Tags