Vim ignoruje pseudonimy


11

Jeśli odwzoruję polecenie w vimie, używając czegoś podobnego

map <f4> :! pdflatex %<cr>

Vim zignoruje mój alias dla pdflatex (coś w stylu aliasu pdflatex = 'pdflatex --temp-dir = coś'). Czy jest możliwe, aby vim nie ignorował tego?


Czy to możliwe, że twoja powłoka lub typ powłoki nie pasują do powłoki logowania?
DaveParillo

Odpowiedzi:


16

Vim „ignoruje” twoje aliasy, ponieważ twoja powłoka nie jest w „nastroju” do parsowania twojego .bash_profile/.bashrc(nie określiłeś, gdzie twoje aliasy są zdefiniowane), ponieważ nie jest uruchamiana jako powłoka logowania / interaktywna (czytaj tutaj, aby dowiedzieć się więcej o co jest czytane, kiedy iz jakiego powodu).

Masz więc kilka opcji:

  1. Umieść kod używany w pdflatexaliasie w skrypcie i wywołaj go
  2. vimrc:, 'set shell=/bin/bash\ -l'umieść swoje aliasy w .bash_profile
  3. Zadzwoń do powłoki jako powłoki interaktywnej / logowania: :! bash -l -i -e 'pdflatex .'

2
Logowanie / brak logowania nie ma znaczenia ~/.bashrc- tylko interaktywne / nieinteraktywne.
user1686

moje aliasy są w .bash_profile .. hmm trochę zmieniłem pytanie. Wolę, aby działał w bieżącej powłoce. Drugie rozwiązanie wydawało się najbardziej „akceptowalne”, jednak sprawia, że ​​zmienna% jest bezużyteczna, ponieważ otwieranie nowej powłoki zwykle rozpoczyna się w folderze domowym.
vonhogen

To niesamowita i dokładna odpowiedź. Dzięki!
Abel
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.