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.