Vim reduz o atraso após emitir um comando

3

Eu tenho mapeamentos dentro do meu .vimrc para abrir ou alternar para aplicativos comumente usados.

Caso de uso: Eu tenho 10 aplicativos abertos e estou no MacVim. É mais rápido emitir <Leader>sc , que é mapeado para map <Leader>sc :silent !open /Applications/Google\ Chrome.app<CR> , do que para Command+Tab várias vezes para acessar o aplicativo do Chrome.

No entanto, há um atraso do vim desde o momento em que emito <Leader>sc para quando ele executa a ação.

Como posso reduzir esse atraso apenas para esse mapeamento? Eu gostaria que isso fosse tão instantâneo quanto executar open /Applications/Google\ Chrome.app da linha de comando, no entanto, o vim apresenta um pequeno atraso antes de executar esse comando.

Editar: notei que há uma configuração de timeoutlen , mas isso é global. Eu gostaria de algo semelhante apenas para esses mapeamentos.

    
por Jey Balachandran 14.04.2012 / 21:14

2 respostas

3

Isso é mais provável porque você tem outro mapeamento que começa com <Leader>sc e o Vim está aguardando para ver se você está digitando apenas o mapeamento mais curto ou se pretende digitar o outro mapeamento mais longo.

A única maneira de contornar esse problema é alterar um dos mapeamentos para que o Vim saiba que não há ambigüidade, o que deve fazer com que ele execute instantaneamente o comando.

Digitar " :map <leader>sc " e pressionar Enter deve mostrar todos os mapeamentos que começam com essa sequência.

    
por 14.04.2012 / 22:23
0

Você não pode ajustar timeoutlen para comandos / mapeamentos específicos no Vim. Você provavelmente poderia fazer isso para um buffer / janela / guia específico, mas ainda assim seria o mesmo valor para qualquer comando / mapeamento naquele contexto específico.

Mas acho que o atraso é causado pelo uso de open aqui.

Por que você não usa o Quicksilver? Eu usei isso por anos: ele fornece o mesmo mecanismo em qualquer contexto em que eu esteja. Seja no Vim, iTunes, Outlook ou Preview, eu posso digitar a mesma sequência de teclas para mudar para o Chrome. Esta onipresença só faz com que seja indispensável para mim. Isso e a velocidade de <C-Space>c<CR> .

No seu sistema, você poderia teoricamente economizar tempo ao fazer o Vim > Chrome, mas como você faz o Chrome > Vim? AFAIK você não pode usar <leader>sv no Chrome, então você deve recorrer a outro mecanismo. Isso é pelo menos dois sistemas para configurar e manter ou pelo menos um personalizado muito eficaz e um padrão menos eficaz.

    
por 15.04.2012 / 08:51

Tags