Vim ignoriert Aliase

11

Wenn ich einen Befehl in vim mit so etwas wie zuordne

map <f4> :! pdflatex %<cr>

Vim ignoriert meinen Alias ​​für pdflatex (so etwas wie Alias ​​pdflatex = 'pdflatex --temp-dir = etwas'). Ist es möglich, vim dazu zu bringen, es nicht zu ignorieren?

vonhogen
quelle
Ist es möglich, dass Ihre Vim-Shell oder Ihr Shelltype nicht mit Ihrer Login-Shell übereinstimmen?
DaveParillo

Antworten:

16

Vim 'ignoriert' Ihre Aliase, weil Ihre Shell nicht in der 'Stimmung' ist, Ihre zu analysieren .bash_profile/.bashrc(Sie haben nicht angegeben, wo Ihre Aliase definiert sind), weil 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. Fügen Sie den Code, den Sie in Ihrem pdflatexAlias ​​verwenden, in ein Skript ein und rufen Sie ihn auf
  2. vimrc: Setzen Sie 'set shell=/bin/bash\ -l'Ihre Aliase auf .bash_profile
  3. Rufen Sie Ihre Shell als interaktive / Login-Shell auf: :! bash -l -i -e 'pdflatex .'
Akira
quelle
2
Login / Nicht-Login spielt keine Rolle ~/.bashrc- nur Interaktiv / Nicht-Interaktiv.
user1686
meine aliasnamen sind in .bash_profile .. hmm ich habe die frage ein wenig geändert. Ich würde es lieber in der aktuellen Shell laufen lassen. Ihre zweite Lösung schien die "akzeptabelste" zu sein, macht jedoch die% -Variable unbrauchbar, da das Öffnen einer neuen Shell normalerweise im Home-Ordner beginnt.
vonhogen
Dies ist eine erstaunliche und gründliche Antwort. Vielen Dank!
Abel