it-swarm-pt.tech

Como fazer recortar / copiar / colar no GVim no Ubuntu funciona com Ctrl + X, Ctrl + C, Ctrl + V?

Por padrão, os atalhos de cut/copy/paste no GVim no Ubuntu são:

 Cortar "+ x 
 Copiar" + y 
 Colar "+ gP 

Eu gostaria de usar combos de chaves de controle no GVim, como eu uso no Firefox e em outras aplicações gnome. Como faço para configurar o GVim para funcionar como outros aplicativos do Gnome?

52
pcapademic

Adicione as seguintes linhas ao seu _vimrc ou .vimrc

source $VIMRUNTIME/mswin.vim
behave mswin

Mas cuidado, o modo visual é então CTRL-Q em vez de CTRL-V.

Para uma visão geral, o mswin.vim vê o mswin.vim sourcode . Comenta-se muito bem e, se algum comando não estiver claro, você pode facilmente consultá-lo na ajuda do vim.

Aqui está uma visão geral compilada da fonte:

  • as teclas backspace e cursor envolvem a linha anterior/seguinte
  • CTRL-X e SHIFT-Del são cortados
  • CTRL-C e CTRL-Insert são cópias
  • CTRL-V e SHIFT-Insert são Colar
  • Use CTRL-Q para fazer o que o CTRL-V costumava fazer
  • Use CTRL-S para salvar, também no modo Insert
  • CTRL-Z é Desfazer; não no cmdline embora
  • CTRL-Y é Refazer (embora não seja repetido); não no cmdline embora
  • Alt-Space é o menu System
  • CTRL-A é Selecionar tudo
  • CTRL-Tab é próxima janela
  • CTRL-F4 é a janela Fechar

A pedido do Nippysaurus: eu coloquei o seguinte no meu .gvimrc para mostrar Ctrl-V além de Colar no menu:

unmenu! Edit.Paste
aunmenu Edit.Paste
nnoremenu 20.360 &Edit.&Paste<Tab>Ctrl-V        "+gP
cnoremenu    &Edit.&Paste<Tab>Ctrl-V        <C-R>+

Eu não testei completamente, apenas uma verificação rápida se fizesse o que eu esperava. Funciona para mim, espero que funcione para você ;-)

50
Ludwig Weinzierl

Se você quiser que Cut/Copy/Paste funcione usando as teclas de atalho "padrão", mas não quer alterar nenhuma das outras opções de configuração no gvim, tente adicionar o seguinte a ~/.vimrc.

vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <C-r><C-o>+

Colar funciona somente no modo Visual e de inserção, para que você não precise se preocupar com o conflito com o Ctrl-V e o modo visual de bloco. Isso não é um problema, porque copiar e recortar colocá-lo em modo de inserção, para que você possa colar imediatamente depois. Se você experimentá-lo, descobrirá que é completamente natural.

Eu criei essa configuração depois de várias iterações de ajustes, e acho que está "perfeita" agora. Se você está um pouco insatisfeito com a configuração atual de copiar/colar, tente fazer isso e aposto que vai adorar.

44
Cogan

Se você quiser manter o comportamento normal do vim, mas também permitir um uso menos complicado da área de transferência do sistema, consulte Acessando a área de transferência do sistema . Se você quiser que o gvim use a área de transferência do sistema como seu buffer padrão (assim, qualquer comando x, y, p, etc. usa a área de transferência) e adicione a seguinte linha ao seu vimrc:

set clipboard=unnamed

Eu pessoalmente uso os buffers muito mais dentro do vim do que entre o vim e o sistema; então eu prefiro ter um atalho um pouco mais pesado do que a minha área de transferência do sistema constantemente derrotada. Mas é legal que a opção esteja lá para quem preferir.

9
jtb

Eu acho que você pode adicionar isso com o comando: imap (tentei apenas com Ctrl + X no Windows que funcionou, pressionando ctrl + c parece cancelar o comando embora assim você pode ter que fazê-lo no vimrc).

:imap <C-X> "+x
:imap <C-C> "+y 
:imap <C-V> "+gP

Se você adicioná-lo ao seu ~/.vimrc você só precisa remover o: na frente do imap.

o imap só adiciona as ligações no modo de inserção, portanto, você pode querer alterá-lo para apenas mapear ou outra coisa. Procure em :help mapmode para saber mais sobre remapeamento e desmapeamento de material.

Boa sorte!

2
Peter Thorin