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?


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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.