Vim ignora gli alias


11

Se mappa un comando in vim usando qualcosa di simile

map <f4> :! pdflatex %<cr>

Vim ignorerà il mio alias per pdflatex (qualcosa come alias pdflatex = 'pdflatex --temp-dir = qualcosa'). È possibile fare in modo che Vim non lo ignori?


È possibile che la tua shell vim o shelltype non corrisponda alla shell di login?
DaveParillo,

Risposte:


16

Vim 'ignora' i tuoi alias perché la tua shell non è in uno stato d'animo per analizzare il tuo .bash_profile/.bashrc(non hai specificato, dove sono definiti i tuoi alias) perché non è avviato come shell di login / interattiva (leggi qui per saperne di più su cosa viene letto quando e per quale motivo).

Quindi, hai diverse opzioni:

  1. Inserisci il codice che usi nel tuo pdflatexalias in uno script e chiamalo
  2. vimrc:, 'set shell=/bin/bash\ -l'metti i tuoi alias in .bash_profile
  3. Chiama la tua shell come shell interattiva / login: :! bash -l -i -e 'pdflatex .'

2
Il login / non login non conta ~/.bashrc: solo interattivo / non interattivo.
user1686,

i miei alias sono in .bash_profile .. hmm Ho cambiato un po 'la domanda. Preferirei funzionare nella shell corrente. La tua seconda soluzione sembrava la più "accettabile", tuttavia rende inutile la variabile% poiché l'apertura di una nuova shell di solito inizia nella cartella principale.
vonhogen,

Questa è una risposta straordinaria e completa. Grazie!
Abel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.