2011-07-23 10 views
6

Puedo usar: shell para ingresar el directorio actual y ejecutar comandos. bash_completion funciona bien.¿Es posible habilitar bash_completion para:! o: r! en VIM?

Pero, ¿cómo funciona bash_completion en :! comando o : r! comando caso?

Nota. Soy usuario de Emacs y Emacs M-! comando no permitir tales cosas (también M-x shell, necesita M-x term para obtener bash_completion).

Respuesta

2

No es posible. Lo que @Prince Goulash se refiere a es una simple terminación de nombre de archivo hecha por vim. Si sabe cómo forzar bash a las variantes de terminación de tubería en algún lugar, puede crear una función de finalización para el comando personalizado que a su vez puede llamar al :! incorporado, pero no es posible redefinir la terminación para los comandos incorporados.

Personalmente no sé cómo hacer esto con bash y sé que intentar hacerlo en zsh resulta en hacks sucios con la redefinición de los comandos integrados de zsh (como compadd), usando pexpect (python), Expect (perl) , expect (tcl), zsh/zpty o algo similar para ejecutar shell en modo interactivo e inventar el mecanismo de IPC zsh-> vim (en sentido contrario es mucho más simple) (una vez comencé a trabajar en un módulo similar para zsh, pero me detuve como hubo demasiados problemas de esta manera).

1

¿Usted se ha

set nocompatible 

en su .vimrc? Esto habilita automáticamente la finalización del modo ex para :!. Para ver la lista de terminaciones posibles también se podría utilizar

set wildmenu 

e investigar las opciones wildmode.

Cuestiones relacionadas