Vim ignora los alias

11

Si mapeo un comando en vim usando algo como

map <f4> :! pdflatex %<cr>

Vim ignorará mi alias para pdflatex (algo así como alias pdflatex = 'pdflatex --temp-dir = something'). ¿Es posible hacer que vim no lo ignore?

vonhogen
fuente
¿Es posible que su shell o tipo de shell vim no coincida con su shell de inicio de sesión?
DaveParillo

Respuestas:

16

Vim 'ignora' sus alias porque su shell no está en un 'estado de ánimo' para analizar su .bash_profile/.bashrc(no especificó, dónde se definen sus alias) porque no se inicia como un shell de inicio de sesión / interactivo (lea aquí para obtener más información sobre qué se lee cuándo y por qué motivo).

Entonces, tienes varias opciones:

  1. Ponga el código que usa en su pdflatexalias en un script y llame a eso
  2. vimrc:, 'set shell=/bin/bash\ -l'ponga sus alias a .bash_profile
  3. Llame a su shell como un shell interactivo / de inicio de sesión: :! bash -l -i -e 'pdflatex .'
akira
fuente
2
El inicio de sesión / no inicio de sesión no importa ~/.bashrc, solo lo hace interactivo / no interactivo.
user1686
mis alias están en .bash_profile .. hmm, cambié un poco la pregunta. Prefiero que se ejecute en el shell actual. Su segunda solución parecía la más 'aceptable', sin embargo, hace que la variable% sea inútil ya que abrir un nuevo shell generalmente comienza en la carpeta de inicio.
vonhogen
Esta es una respuesta sorprendente y completa. ¡Gracias!
Abel