8

我尝试过擦除我的 .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 命令或函数工作(例如:!lsgx)。

回答

此外,我终于设法在运行后让一切正常运行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.) 有人真的知道这里到底发生了什么吗?!

如果您是版主,请告诉我是否应该将这些问题分成不同的帖子,但这是一个大问题,我不敢相信我是唯一遇到此问题的人,因为我找不到任何问题问答彻底解释了发生了什么。提前感谢大家的帮助!

4

2 回答 2

1

我遇到了完全相同的问题,最终从这个小而有效的插件中得到了解决(+相当多的奖金):

https://github.com/stsewd/gx-extended.vim

添加对部分 URL、markdown URL、“插件”-> github 路径等的支持。它的行为比 netrw 好得多。

于 2021-07-25T15:49:19.440 回答
1

我在 OS X 上并在 vim 中运行以下命令对我有用:

:let g:netrw_browser_viewer='open'

另请参阅Fedora 的类似答案:

:let g:netrw_browsex_viewer="setsid xdg-open"
于 2018-03-27T20:39:52.970 回答