Tenho mapeamentos .vimrc
para abrir ou alternar para aplicativos comumente usados.
Caso de uso: tenho 10 aplicativos abertos e estou no MacVim. É mais rápido emitir <Leader>sc
o que está mapeado para map <Leader>sc :silent !open /Applications/Google\ Chrome.app<CR>
do que Command+Tab
várias vezes para acessar o aplicativo Chrome.
No entanto, há um atraso do vim desde o momento em que emito <Leader>sc
até o momento em que 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
a partir da linha de comando, mas o vim introduz um pequeno atraso antes de executar esse comando.
Editar: notei que há uma timeoutlen
configuração, porém que é global. Eu gostaria de algo semelhante apenas para esses mapeamentos.
Responder1
Provavelmente, isso ocorre porque você tem outro mapeamento que começa com <Leader>sc
e o Vim está esperando para ver se você está apenas digitando 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 o comando instantaneamente.
Digitar " :map <leader>sc
" e pressionar enter deve mostrar todos os mapeamentos que começam com essa sequência.
Responder2
Você não pode ajustar timeoutlen
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 nesse contexto específico.
Mas acho que a demora é causada pelo uso open
daqui.
Por que você não usa Mercúrio? Eu o uso há anos: ele fornece o mesmo mecanismo em qualquer contexto em que eu esteja. Esteja eu no Vim, no iTunes, no Outlook ou no Preview, posso digitar exatamente a mesma sequência de teclas para mudar para o Chrome. Essa onipresença por si só o torna um item obrigatório para mim. Isso e a velocidade de <C-Space>c<CR>
.
Em seu sistema, você poderia teoricamente economizar tempo ao fazer Vim > Chrome, mas como você faz Chrome > Vim? AFAIK você não pode usar <leader>sv
no Chrome, então você deve recorrer a outro mecanismo. São pelo menos dois sistemas para configurar e manter ou pelo menos um personalizado muito eficaz e um padrão menos eficaz.