Vimはエイリアスを無視します


11

次のようなものを使用してvimでコマンドをマッピングすると

map <f4> :! pdflatex %<cr>

Vimはpdflatexのエイリアス(エイリアスpdflatex = 'pdflatex --temp-dir = something'など)を無視します。vimがそれを無視しないようにすることは可能ですか?


vimシェルまたはshelltypeがログインシェルと一致しない可能性はありますか?
DaveParillo

回答:


16

シェルが.bash_profile/.bashrcログイン/インタラクティブシェルとして開始されていないため、シェルが解析する「気分」ではないため(エイリアスが定義されている場所を指定しなかったため)、Vimはエイリアスを「無視」します(詳細については、こちらをお読みください)いつ、どのような理由で読み取られるか)。

したがって、いくつかのオプションがあります。

  1. pdflatexエイリアスで使用するコードをスクリプトに入れて呼び出します
  2. vimrc:、'set shell=/bin/bash\ -l'エイリアスを.bash_profileに入れます
  3. シェルを対話型/ログインシェルとして呼び出します。 :! bash -l -i -e 'pdflatex .'

2
ログイン/非ログインは関係ありません~/.bashrc-インタラクティブ/非インタラクティブのみが関係します。
user1686

エイリアスは.bash_profile ..にあります。うーん、質問を少し変更しました。むしろ現在のシェルで実行したいです。2番目の解決策は最も「受け入れられる」ように見えましたが、新しいシェルを開くのは通常ホームフォルダーで開始されるため、%変数は役に立たなくなります。
vonhogen

これは驚くべき徹底した答えです。ありがとう!
アベル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.