Isso é totalmente respondido aqui . Veja a excelente resposta vinculada para detalhes e solução alternativa.
Resposta curta:
coloque :set t_BE=
no seu arquivo .vimrc
.
Como posso desativar o vim
para entrar automaticamente no modo de edição ao clicar com o botão do meio do mouse?
Background: Eu gosto de criar strings de comandos como JJJj
para concatir três linhas e depois ir uma linha para baixo, selecione esta string de comando com o mouse e cole novamente e novamente em vim
usando o botão do meio do mouse. No entanto, recentemente, vim
entra automaticamente no modo de inserção no meio do mouse, tornando este procedimento disfuncional. Eu não sei se é uma mudança em vim
em si ou de alguma configuração padrão da minha distribuição (Gentoo), mas eu preciso de uma maneira de mudar isso novamente.
Para esclarecer uma coisa: Eu não tenho set mouse=a
set (nem no meu ~/.vimrc
nem em outro lugar. Então, por exemplo, os cliques do mouse esquerdo não movem o cursor para o local clicado. Por que razão a sugestão de usar set mouse=
in ~/.vimrc
não resolve este problema.
Além disso, estou falando sobre vim
(em xterm
), não gvim
.
Detalhes do sistema:
Isso é totalmente respondido aqui . Veja a excelente resposta vinculada para detalhes e solução alternativa.
Resposta curta:
coloque :set t_BE=
no seu arquivo .vimrc
.
Tente desabilitar o modo de mouse do vim com :set mouse=
. Adicione isso ao seu ~/.vimrc
(sem o :
). Talvez você também precise comentar qualquer linha set mouse=
existente, se houver uma.
Isso desabilitará todo o manuseio do mouse do vim, retornando à manipulação X padrão do mouse - ou seja, clique com o botão esquerdo para iniciar a seleção, clique com o botão direito para estender a seleção e clique com o botão do meio para colar. Em particular, note que clicar com o mouse na janela vim irá não mover o cursor do mouse, ou interagir com o modo de seleção Visual do vim.
BTW, em vez de usar no mouse para versões abaixo do padrão de recursos embutidos no vim, você considerou usar :map
ou gravar macros?
É fácil mapear sequências de comandos para chaves, por ex. :map , JJJj
para mapeá-los para a chave com vírgula.
Ou use q
seguido de uma letra ou dígito para gravar uma macro em um registro. por exemplo. qaJJJjq
para vincular JJJj
a @a
. Você pode então executar essa macro apenas digitando @a
. Você também pode gravar várias macros e mapeá-las para ,
ou o que for necessário, para alternar rapidamente entre várias operações comuns. por exemplo. :map , @a
Eu uso a chave ,
(vírgula) para mapeamentos de curto prazo (ou seja, sessão de edição atual) porque ela não está mapeada para nada que eu usei. Para mapeamentos permanentes, uso as teclas de função e as defino no arquivo ~/.vimrc
. por exemplo. map <F5> {!}par^V^M}
mapeia a tecla F5 para mover o cursor para o início do parágrafo atual, canalizá-lo através do reformatador par
paragraph e depois mover o cursor além do parágrafo ( vim
construiu -na reformatação de parágrafo, mas prefiro par
).
Observe que mapeamentos e macros podem ser tão arbitrariamente complexos quanto você desejar. Gravar uma macro com q
registrará o que você digitar até que você digite q
novamente. e se você quiser incorporar um caractere de controle como ESC ou carriage-return em um comando :map
, você pode usar Ctrl-V
aka ^V
para "escapar" ao digitar o mapa - por exemplo,
:map , Do^V^[!!date -R^V^MkJ
Isso mapeia ,
para substituir o restante da linha atual (da posição atual do cursor) pela data atual formatada pelo RFC-2822 & tempo.
ou se você quisesse pesquisar um padrão, juntar três linhas e pesquisar novamente, poderia fazer algo assim:
:map , JJJn
Em seguida, execute a primeira pesquisa com /pattern<enter>
e pressione ,
para fazer a junção e pesquisar a próxima ocorrência. Nesse ponto, você pode escolher se deseja entrar e pesquisar novamente (pressione ,
novamente) ou apenas pesquise novamente (pressione n
) ou faça outra coisa completamente. Eu rotineiramente faço coisas como essa quando não quero fazer uma simples busca e substituição, mas quero decidir cada vez (por exemplo, quando é provável que haja muitas correspondências falso-positivas e isso levará mais tempo do que vale a pena ofereça um padrão de pesquisa de regexp perfeito)
O exemplo acima é apenas um exemplo muito simples do que isso pode ser usado - não é muito diferente apenas digitar 3J
e então alternar entre pressionar n
para find-next e .
para repetir o último comando. ..e você pode, é claro, :map , .n
. Ele realmente se torna útil quando você precisa repetir uma sequência de comandos que não podem ser repetidos com apenas .
Tags vim