web-dev-qa-db-ja.com

Vimの$ PATHがターミナルと一致しません

MacVimを使用していますが、ターミナル(mvim)から起動しない場合、その$ PATHには.bash_profileに設定したものが含まれていません。デフォルト値/usr/bin:/bin:/usr/sbin:/sbinしかないようです。

OS X10.5.8を実行しています。 .vimrcで手動で設定できたとしても、ターミナルと同じ場所からプルしたいのですが、問題ありません。あるサイトが提案した内容に従って、let $PATH += /blah/foo:/bar/etcを追加してみました。

編集/解決策:以下の私の答えを参照してください。 MacVimには、これを修正するオプションがあります。

10
donut

MacVim は、通常のユーザーのカスタムドットファイルを無視する方法で$ PATHを取得しているようです。

なぜ彼らがこのようにすることを好むのか私には言えませんが、それは本当のようです。環境設定([詳細設定]タブの下)で、[ログインシェルでVimプロセスを起動する]を選択できますが、それは$PATHをわずかに改善するだけです。

私が知る限り、MacVimは/usr/libexec/path_helperを使用します。これは、(1)/etc/pathsファイルで見つかったアイテムと(2)/etc/paths.d/ディレクトリで見つかった追加のアイテムを使用します。 (.profileなどを介して)ユーザーのホームディレクトリに加えられた変更はすべて無視されます。

一言で言えば、OSXのデフォルトに加えて、/etc/paths.dに自分自身を追加するアプリケーションを取得します。 (たとえば、MacTexは私のシステムでそうします。)したがって、MacVimパスを調整する場合、1つの方法は、アイテムを含むファイルを/etc/paths.dに追加することです。 (それ以来、/etc/pathsを直接編集することはありません。システムの更新によって変更が取り消されるリスクがあります。)

これを知らせてくれてありがとう。 MacVimでウィッシュリストのバグを報告します。

12
Telemachus

ところで、「ログインシェルでVimプロセスを起動する」設定はMacVimでは使用できなくなりました(少なくともv7.3では使用できません)。 FinderからMacVimを起動すると間違ったパスが取得されますが、シェルから( "mvim"として)起動すると正しいパスが取得されます。

7
L S

.bash_profileから供給されていませんが、.vimrcでこれを使用できます。

let $PATH=$PATH . ':/blah/foo'

:が必要です。そうしないと、正しいPATH変数になりません。

3
Richard Turner

これまで見たことがなかったなんて信じられません。さて、私はそれを信じることができます。とにかく、MacVimにはこれを解決するオプションが付属しています。 [設定]で、[ログインシェルでVimプロセスを起動する]をオンにします。それだけです、それは動作します。おしゃれ。愚かな私。

Oops

テレマコスがすでに私に 正解 を与えていることに気づかずに、私は誤ってこの答えを書きました。彼を答えとしてマークしました。

2
donut

このMac Dev Centerの記事 役に立つかもしれません。

1

私は今日これに遭遇しました。 MacVimには「ログインシェル」オプションがなくなり、システム全体のファイルをユーザー固有の設定で編集するのは大雑把です。

これはvimオプションのみを使用した解決策です(:help :!および:help Shellを参照)。

~/.vimrcに行を追加します

set Shell=/bin/bash
set shellcmdflag=-l\ -c

これにより、bashが(Mac)Vimのデフォルトのシェルになり、-lで呼び出されるコマンドに:!{cmd}フラグ(ログインシェル)が追加されます。 :Shellを実行すると、bashは「ログインシェルではないインタラクティブシェル」として起動されます。

$PATHを機能させるには、~/.bash_profileの場合は:!に、~/.bashrcの場合は:Shellに設定する必要があります。 (man bashINVOCATIONを参照)

更新:これは他のコンピューターでは必要なかったので、根本的な原因は他にある可能性があります。

1
jladan

MacVimは~/.zprofile/etc/profileを調達するので、そこにPATH設定を入れることができます。

https://github.com/b4winckler/macvim/wiki/Troubleshooting#for-zsh-users および Stack Overflowに関するこの質問 を参照してください。

(MacVimバージョン7.3(65)でテスト済み)。

1
a paid nerd

パス.dディレクトリにファイルを追加するのに問題はありませんでした。 mysqlというファイルを追加しました。その内容は次のとおりです。

/ usr/local/mysql/bin [戻る]

次に、このファイルをpaths.dディレクトリの下に置き、所有権をroot:wheelに変更しました。これで、mysqlディレクトリが$ PATH変数に自動的に追加されます。

十分に調査していませんが、(a)行末に[RETURN]を含めるか、(b)ファイルの所有権をrootに設定する必要があるかもしれません。

1
Jan Hettich

私は非常によく似た質問をしました Vim StackExchangeサイトで そして私のために働く答えをそこに投稿しました!

0
Brad Parks

私はMacよりもUNIXのことをよく知っているので、次のアドバイスが機能する場合と機能しない場合があります。これをあなたの.vimrcファイルに入れてみてください:

! source ~/.bash_profile

それでうまくいくかもしれませんが、少し注意が必要です。bash_profileは1回だけソースされることを意図しています。べき等でないコマンド(1回だけ実行する必要があるもの)が含まれている場合があります。適例:

$PATH += /blah/foo:/bar/etc

呼び出される回数が多いほど、$PATHは大きく冗長になります。ただし、それがそれほど大したことではない場合、unixでの推奨事項は、1回限りのコマンドを~/.bashrcに配置し、source ~/.bashrcファイルから.vimrcを実行することです。

0
David Berger