VIM Ctrl-V Conflito com Windows Paste

110

Estou usando o VIM no Windows. O problema é que quero usar CtrlVcomo modo visual. No entanto, esta chave está em conflito com o colar do Windows. Como posso redefinir esta chave de volta para o modo visual VIM em vez de colar. Prefiro definir isso em meu arquivo de configuração _vimrc.

David.Chu.ca
fonte

Respostas:

145

Da documentação do VIM :

Como CTRLVé usado para colar, você não pode usá-lo para iniciar uma seleção Visual em bloco. Você pode usar em seu CTRLQlugar. Você também pode usar o CTRLQmodo de inserção e o modo de linha de comando para obter o antigo significado de CTRLV. Mas CTRLQ não funciona para terminais quando é usado para fluxo de controle.

Alex
fonte
2
Gosto mais disso do que de brincar com _vimrc. Ele funciona imediatamente e, como é improvável que estarei em terminais seriais no futuro, o controle de fluxo Ctrl-S / Ctrl-Q não é um problema.
Michael Dillon
No Linux (terminal Gnome) achei melhor usar CTRL-K CR , mas encontrei esta resposta primeiro.
jalanb
3
Por algum motivo, precisei usar a Shifttecla para seleção visual no Windows, enquanto não uso no Linux.
stevesliva
1
Obrigado user132014! Acho que você precisa usar h, j, k e l para navegar no modo de bloqueio visual usando Ctrl-Q, no entanto. Esse é o caso do editor gVim para Windows. As setas não parecem funcionar para mim no gVim para Windows ao navegar no modo de bloqueio visual usando Ctrl-Q.
Ratnesh Chandna
3
@RatneshChandna - Usar Shiftjunto com as setas? Estou vendo o mesmo comportamento, mas de alguma forma descobri que Shiftfuncionou. Eu não sabia que h / j / k / l funcionava.
stevesliva
40

Verifique seu arquivo _vimrc e veja se ele origina mswin.vim. Esse script mapeia o ^ v para a pasta. Você pode remover essa linha do arquivo _vimrc ou desabilitar os comandos de mapeamento diretamente no mswin.vim.

Faça um: help comportar-se no vim para mais informações.

pular
fonte
24

O modo visual (e outras coisas) funcionando como no Unix requer sugestões do JOP e do Windows Programmer.

No GVim no Windows, vá para o menu de edição, clique em configurações de inicialização e comente o lixo específico do Windows (usando o caractere de comentário vimrc, que é uma aspa dupla). O arquivo mswin.vim é onde o ctrl- voverride é especificado, e a opção Behave mswin faz com que as teclas de seta não apliquem apenas o movimento como você espera (também muda o comportamento de seleção do mouse).

"source $VIMRUNTIME/mswin.vim
"behave mswin

Eu gosto de adicionar um esquema de cores de fundo preto lá também, para que se pareça mais com o que eu veria em um terminal (e porque um fundo claro é ótimo no papel, mas horrível em uma tela retroiluminada): colorscheme koehler

Dannysauer
fonte
20

Se esta linha em seu _vimrc incomoda você:

behave mswin

em seguida, exclua essa linha.

Programador Windows
fonte
14

Eu prefiro os mesmos pressionamentos de tecla em todos os lugares, então eu uso isso no meu .vimrc para substituir mswin.vim:

if has('win32')
  " Avoid mswin.vim making Ctrl-v act as paste
  noremap <C-V> <C-V>
endif
rshdev
fonte
7

Não tenho certeza se há muito que você possa fazer sobre isso. Você pode usar em CtrlQvez disso.

Starkii
fonte
4

A combinação do conselho do jop (procurando por mswin.vim no arquivo _vimrc padrão) e o conselho do "programador do Windows" (livrando-se da linha "comportar-se mswin") funcionou perfeitamente para mim.

(meu representante é muito baixo para votá-los ou combiná-los - alguém limpe isso para mim ou eu voltarei assim que meu representante for maior)

Rick Reynolds
fonte
3
Em outras palavras, você estava tentando deixar um comentário?
Christopher Bottoms
1
Ei, sou um usuário raro de stackoverflow (daí minha baixa reputação)
Rick Reynolds