Executando uma combinação de teclas vim na inicialização

5

No meu .vimrc , eu tenho as linhas

autocmd VimEnter * NERDTree
autocmd VimEnter * TagbarOpen

Isso resulta em um layout com duas barras laterais e uma coluna central contendo o buffer de edição principal (ou seja, o arquivo que estou editando), mas com o cursor na barra lateral NERDTree - resultando na tagbar sendo recolhida por padrão. O que eu quero fazer é executar a combinação de teclas <C>l (que eu mapeei para o comando para mover o cursor um buffer para a direita) entre a abertura do NERDTree e o Tagbar sendo alternado - mas até agora, eu não tenho conseguiu fazer o cursor se mover. Até agora, eu tentei usar os dois

autocmd VimEnter * <C>l
autocmd VimEnter * normal <Ctrl+l>

... entre as duas primeiras linhas acima, mas nenhuma delas funciona.

Como faço para isso?

    
por Jules 06.06.2014 / 01:35

2 respostas

6

O comando para ir para a janela à direita é <C-w>l . Você pode executar isso com

:execute "normal! \<C-w>l"

Mas, para os comandos <C-w> , há um :wincmd especial que facilita isso. Então, basta pular seu mapeamento personalizado e fazer:

autocmd VimEnter ...
autocmd VimEnter * wincmd l
    
por 06.06.2014 / 08:58
0

Após uma análise mais aprofundada, admito que a questão não é realmente uma duplicata de VIM Executando um comando chave em uma função .

Você estava no caminho certo com autocmd VimEnter , estava faltando o comando execute :

:help execute
:exe[cute] {expr1} ..   Executes the string that results from the evaluation    
                        of {expr1} as an Ex command.

Tomando a sintaxe para executar uma combinação de teclas como Ctrl - L do link acima, você pode combinar os dois em seu .vimrc :

autocmd VimEnter * execute "normal \<C-L>"
    
por 06.06.2014 / 05:30

Tags