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?


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 .'

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.