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?


¿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 .'

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.