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.

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.


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.


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



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

7

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


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)


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.