Vim ignoriert Aliase

3081
vonhogen

Wenn ich einen Befehl in vim mit etwas vergleiche

map <f4> :! pdflatex %<cr> 

Vim ignoriert meinen Alias ​​für pdflatex (etwas wie der Alias ​​pdflatex = 'pdflatex --temp-dir = etwas'). Kann man vim nicht ignorieren lassen?

11
Ist es möglich, dass Ihre Vim-Shell oder Ihr Shelltype nicht zu Ihrer Login-Shell passt? DaveParillo vor 15 Jahren 0

1 Antwort auf die Frage

16
akira

Vim "ignoriert" Ihre Aliase, weil Ihre Shell nicht in der "Stimmung" ist, um Ihre zu analysieren .bash_profile/.bashrc(Sie haben nicht angegeben, wo Ihre Aliase definiert sind), da sie nicht als Login / interaktive Shell gestartet wird (lesen Sie hier, um mehr darüber zu erfahren Was wird wann und aus welchem ​​Grund gelesen?

Sie haben also mehrere Möglichkeiten:

  1. Geben Sie den Code, den Sie in Ihrem pdflatexAlias ​​verwenden, in ein Skript ein und rufen Sie das auf
  2. vimrc:, 'set shell=/bin/bash\ -l'setzen Sie Ihre Aliase auf .bash_profile
  3. Rufen Sie Ihre Shell als interaktive / Login-Shell auf: :! bash -l -i -e 'pdflatex .'
Login / Nicht-Login ist für `~ / .bashrc` von Belang - nur interaktiv / nicht-interaktiv. grawity vor 15 Jahren 2
meine Aliase sind in .bash_profile .. hmm Ich habe die Frage etwas geändert. Ich würde es lieber in der aktuellen Shell ausführen. Ihre zweite Lösung schien die "akzeptabelste" zu sein. Sie macht jedoch die Variable% unbrauchbar, da das Öffnen einer neuen Shell normalerweise im Home-Ordner beginnt. vonhogen vor 15 Jahren 0
Dies ist eine erstaunliche und gründliche Antwort. Vielen Dank! Abel vor 13 Jahren 0