Altere os buffers no MacVim

6

Eu quero poder trocar os buffers (: bn! /: bp!) no MacVim, usando atalhos como

Alt (opção) - tecla de seta para a esquerda / tecla de seta para a direita

Até agora não consegui fazer isso.

Aqui está meu mapeamento para as chaves, que funciona perfeitamente no Linux, mas não no MacOS:

map <M-Right> :bn!<CR>
map <M-Left> :bp!<CR>
    
por Art 14.07.2011 / 07:24

2 respostas

8

Os arquivos de inicialização do Vim são processados nesta ordem (simplificado; consulte :help initialization ):

  1. $VIM/vimrc
  2. $HOME/.vimrc
  3. $VIM/gvimrc
  4. $HOME/.gvimrc

O problema é que o MacVim mapeia M-Right e M-Left (e várias outras combinações de teclas) em seu $VIM/gvimrc (ou seja, …/MacVim.app/Contents/Resources/vim/gvimrc ); isso substituirá os mapeamentos feitos nessas combinações de teclas em $HOME/.vimrc .

Se você examinar este arquivo de inicialização (por exemplo, :view $VIM/gvimrc ), verá que esses mapeamentos específicos podem ser inibidos configurando a variável especial macvim_skip_cmd_opt_movement (para qualquer valor) em $HOME/.vimrc .

let macvim_skip_cmd_opt_movement = 1

Isso inibirá dez mapeamentos MacVim padrão (Comando e Opção para cada um dos lados esquerdo, direito, para cima, para baixo e BS).

Como alternativa, você poderia simplesmente colocar seus mapeamentos em $HOME/.gvimrc (onde eles substituirão os mapeamentos padrão do MacVim, mesmo que você não os tenha inibido com macvim_skip_cmd_opt_movement ).

    
por 15.07.2011 / 05:28
3

Tente colocar isso no seu arquivo .vimrc:

" Set left and right option/alt keys to be meta keys
set macmeta

Em seguida, tente esses mapeamentos novamente e veja se eles funcionam. Se você quiser reverter isso, basta :set nomacmeta .

Se você também usar esse arquivo .vimrc em computadores sem o MacVim, use:

" Set left and right option/alt keys to be meta keys
if has("gui_macvim")
    set macmeta
endif
    
por 14.07.2011 / 08:39