我尝试过擦除我的 .vimrc、卸载所有插件、更新 Vim、尝试不同的 shell 等,但我绝对不能让 'gx' 在给定的 URL 上工作。我以前用过它,它工作得很好,如果我在一个空白行上'gx'ed,它甚至可以用来打开我的查找器目录。我尝试在多个 URL 上运行 'gx',在它们之上,在它们之下,在末尾添加“/”等。仍然没有运气。我只是在想办法弄清楚为什么它在过去时不再起作用。有时它会在缓冲区名称等于 URL 的空白缓冲区中打开一个 URL,而其他时候什么也不会发生。我会感谢任何真正知道这件愚蠢的事情到底发生了什么的人。
我正在使用最新版本的 OS X 并拥有最新版本的 Vim。
更新
我找到了这个问题的答案,但仍然不太确定它为什么有效,而我原来的方法没有。
原始方法
我安装了 iTerm2 并被迫设置 Preferences >Profiles >General >Command >Command > /usr/local/bin/zsh -l
。即使我运行$ chsh -s /usr/local/bin/zsh
并添加/usr/local/bin/zsh
到/etc/shells
,我也无法让 >Profiles >General >Command >Login(单选按钮)工作。
我会在终端中收到一条错误消息,或者窗口会在 iTerm 中简单地闪烁并消失。但是,在我的脑海中运行我的配置文件命令/usr/local/bin/zsh -l
应该强制 shell 以登录模式(与我的默认模式相同)运行,但它在 vim 中引起了重大问题,我无法获得任何依赖于 shell 命令的 shell 命令或函数工作(例如:!ls
,gx
)。
回答
此外,我终于设法在运行后让一切正常运行chsh -s /bin/bash
(例如恢复到默认值)。突然间,我可以在选中登录单选按钮的情况下同时运行终端和 iTerm,我的所有问题都消失了。应该注意的是,我尝试chsh -s /usr/local/bin/zsh
并收到了一个我第一次没有收到的错误——关于非标准登录 shell 的东西。
不过这还不够好,因为我真的很想使用我的 Homebrew zsh(和 bash)shell,因为它们更流行。最后,我找到了答案,我跑了sudo dscl . change /users/$USER UserShell /bin/bash /opt/local/bin/zsh
,然后我可以选中 Login 单选按钮并-zsh
第一次实际使用,没有任何问题。
现在有更多问题
我现在的问题是: 1.) 为什么我原来的配置文件命令没有/usr/local/bin/zsh -l
像我的默认登录 shell 一样工作?它们不一样吗(例如,登录外壳是登录外壳)?2.) 如果我更新/etc/shells
为什么/usr/local/bin/zsh
会收到“非标准 shell 错误”?3.)我阅读了 MAN 页面,dscl
但不明白当chsh -s /new/shell/path
它不起作用时它实际上是如何改变我的登录 shell 的?4.) 有人真的知道这里到底发生了什么吗?!
如果您是版主,请告诉我是否应该将这些问题分成不同的帖子,但这是一个大问题,我不敢相信我是唯一遇到此问题的人,因为我找不到任何问题问答彻底解释了发生了什么。提前感谢大家的帮助!