我正在使用 MacVim,当我不从终端 ( mvim
) 启动它时,它的 $PATH 不包含我在 .bash_profile 中设置的内容。它似乎只有默认值/usr/bin:/bin:/usr/sbin:/sbin
。
我运行的是 OS X 10.5.8。即使我可以在 .vimrc 中手动设置它,那也没问题,尽管我更希望它从与终端相同的位置拉出。我尝试按照一个网站的建议进行操作,但let $PATH += /blah/foo:/bar/etc
无济于事。
编辑/解决方案:请参阅下面的回答。MacVim 有一个选项可以解决这个问题。
答案1
MacVim似乎以一种忽略普通用户自定义点文件的方式获取了 $PATH。
我不能说为什么他们更喜欢这样做,但这似乎是真的。在首选项中(在“高级”选项卡下),您可以选择“在登录 shell 中启动 Vim 进程”,但这对$PATH
我来说只是稍微改善了一点。
据我所知,MacVim 使用/usr/libexec/path_helper
-,它依次使用 (1) 在文件中找到的项目/etc/paths
和 (2) 在目录中找到的任何其他项目/etc/paths.d/
。在用户主目录中所做的任何更改(通过.profile
或类似方式)都将被忽略。
简而言之,您将获得 OSX 默认设置,以及任何将自身添加到 的应用程序/etc/paths.d
。 (例如,MacTex 在我的系统上就是这样做的。)因此,如果您想调整 MacVim 路径,一种方法是将包含项目的文件添加到/etc/paths.d
。 (我不会直接编辑,/etc/paths
因为这样您会面临更改被系统更新撤消的风险。)
谢谢你告诉我这个。我要去 MacVim 提交一个愿望清单错误。
答案2
顺便说一句,“在登录 shell 中启动 Vim 进程”首选项在 MacVim 中不再可用(至少 v7.3 中不再可用)。我发现从 Finder 启动 MacVim 会获取错误的路径,但从 shell(作为“mvim”)启动它会获取正确的路径。
答案3
它不是来自 .bash_profile,但您可以在 .vimrc 中使用它:
let $PATH=$PATH . ':/blah/foo'
您必须有:否则它将不是正确的 PATH 变量。
答案4
MacVim 将提供~/.zprofile
和/etc/profile
,因此您可以将PATH
设置放入其中。
看https://github.com/b4winckler/macvim/wiki/Troubleshooting#for-zsh-users和Stack Overflow 上的这个问题。
(使用 MacVim 版本 7.3 (65) 测试)。