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

49

Por padrão, os atalhos de recortar / copiar / colar no GVim no Ubuntu são:

 Cut    "+x
 Copy   "+y
 Paste  "+gP

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

    
por pcapademic 22.07.2009 / 07:59

4 respostas

46

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 do que o mswin.vim vê mswin.vim sourcode . Comenta-se muito bem e se algum comando não estiver claro, você pode facilmente consultá-lo a ajuda do vim.

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

  • backspace and cursor keys wrap to previous/next line
  • CTRL-X and SHIFT-Del are Cut
  • CTRL-C and CTRL-Insert are Copy
  • CTRL-V and SHIFT-Insert are Paste
  • Use CTRL-Q to do what CTRL-V used to do
  • Use CTRL-S for saving, also in Insert mode
  • CTRL-Z is Undo; not in cmdline though
  • CTRL-Y is Redo (although not repeat); not in cmdline though
  • Alt-Space is System menu
  • CTRL-A is Select all
  • CTRL-Tab is Next window
  • CTRL-F4 is Close window

No pedido de 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 ele fez o que eu esperava. Funciona para mim, espero que funcione para você; -)

    
por 22.07.2009 / 08:39
44

Se você deseja cortar / copiar / colar para trabalhar usando as teclas de atalho "padrão", mas não quiser 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 apenas 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 no 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 é "perfeita" agora. Se você está um pouco insatisfeito com a configuração atual de copiar / colar, tente fazer isso e aposto que vai adorar.

    
por 16.09.2010 / 06:24
9

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 (para que qualquer comando x , y , p , etc. use a área de transferência), 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.

    
por 03.08.2009 / 21:43
2

Eu acho que você pode adicionar isso com o comando: imap (tentei apenas com Ctrl + X no Windows que funcionava, 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!

    
por 22.07.2009 / 08:12