Vim 中的 $PATH 与终端不匹配

Vim 中的 $PATH 与终端不匹配

我正在使用 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-usersStack Overflow 上的这个问题

(使用 MacVim 版本 7.3 (65) 测试)。

相关内容