Vim ignore les alias

11

Si je mappe une commande dans vim en utilisant quelque chose comme

map <f4> :! pdflatex %<cr>

Vim ignorera mon alias pour pdflatex (quelque chose comme l'alias pdflatex = 'pdflatex --temp-dir = quelque chose'). Est-il possible de faire en sorte que vim ne l'ignore pas?

vonhogen
la source
Est-il possible que votre shell ou type de shell vim ne corresponde pas à votre shell de connexion?
DaveParillo

Réponses:

16

Vim 'ignore' vos alias car votre shell n'est pas d'humeur à analyser .bash_profile/.bashrc(vous n'avez pas spécifié, où vos alias sont définis) car il n'est pas démarré en tant que shell de connexion / interactif (lisez ici pour en savoir plus sur ce qui est lu quand et pour quelle raison).

Vous avez donc plusieurs options:

  1. Mettez le code que vous utilisez dans votre pdflatexalias dans un script et appelez cela
  2. vimrc:, 'set shell=/bin/bash\ -l'placez vos alias dans .bash_profile
  3. Appelez votre shell en tant que shell interactif / de connexion: :! bash -l -i -e 'pdflatex .'
akira
la source
2
La connexion / non-connexion n'a pas d'importance ~/.bashrc- seul le fait interactif / non interactif.
user1686
mes alias sont en .bash_profile .. hmm j'ai changé un peu la question. Je préfère qu'il s'exécute dans le shell actuel. Votre deuxième solution semblait la plus «acceptable» cependant, elle rend la variable% inutile car l'ouverture d'un nouveau shell commence généralement au dossier de base.
vonhogen
Ceci est une réponse étonnante et approfondie. Merci!
Abel