Tengo asignaciones dentro de mi .vimrc
para abrir o cambiar a aplicaciones de uso común.
Caso de uso: Tengo 10 aplicaciones abiertas y estoy en MacVim. Es más rápido emitir <Leader>sc
cuál está asignado map <Leader>sc :silent !open /Applications/Google\ Chrome.app<CR>
que hacerlo Command+Tab
varias veces para acceder a la aplicación Chrome.
Sin embargo, hay un retraso por parte de vim desde el momento en que emito <Leader>sc
hasta que ejecuta la acción.
¿Cómo puedo reducir este retraso sólo para este mapeo?
Me gustaría que esto fuera tan instantáneo como ejecutar open /Applications/Google\ Chrome.app
desde la línea de comando, sin embargo, vim introduce un ligero retraso antes de ejecutar ese comando.
Editar: noté que hay una timeoutlen
configuración, sin embargo, es global. Me gustaría algo similar sólo para estas asignaciones.
Respuesta1
Lo más probable es que esto se deba a que tiene otro mapeo que comienza con <Leader>sc
y Vim está esperando para ver si simplemente está escribiendo el mapeo más corto o tiene la intención de escribir el otro mapeo más largo.
La única forma de solucionar este problema es cambiar una de las asignaciones para que Vim sepa que no hay ambigüedad, lo que debería hacer que ejecute el comando instantáneamente.
Al escribir " :map <leader>sc
" y presionar Intro se mostrarán todas las asignaciones que comienzan con esa secuencia.
Respuesta2
No puede realizar ajustes timeoutlen
para comandos/asignaciones específicos en Vim. Probablemente podría hacer eso para un búfer/ventana/pestaña específica, pero seguiría siendo el mismo valor para cualquier comando/asignación en ese contexto específico.
Pero creo que el retraso se debe al uso de open
aquí.
¿Por qué no usas Quicksilver? Lo he usado durante años: proporciona el mismo mecanismo en cualquier contexto en el que me encuentre. Ya sea que esté en Vim, iTunes, Outlook o Preview, puedo escribir exactamente la misma secuencia de teclas para cambiar a Chrome. Esta ubicuidad por sí sola lo convierte en algo imprescindible para mí. Eso y la velocidad de <C-Space>c<CR>
.
En su sistema, teóricamente podría ahorrar tiempo al hacer Vim > Chrome, pero ¿cómo se hace Chrome > Vim? AFAIK no puedes usarlo <leader>sv
en Chrome por lo que debes recurrir a otro mecanismo. Son al menos dos sistemas para configurar y mantener o al menos uno personalizado muy efectivo y otro predeterminado menos efectivo.