命令输出重定向到 vim 在 OS X 上不起作用

命令输出重定向到 vim 在 OS X 上不起作用

我尝试使用 - 参数将命令的输出重定向到 vim,但它似乎在 OS X 上不起作用。例如,如果我输入

$ ls | vim - 

在我的一台 Linux 机器的命令行上,ls 的输出正确地传输到 vim。但当我在我的任何一台 OS X 机器上执行同样的事情时,我得到

$ ls | vim -
Vim: Reading from stdin...

它就挂在那里直到我按下 CTRL-D。

知道为什么会发生这种情况以及如何将命令的输出实际重定向到 vim 吗?

作为参考,我使用 OS X 10.6.4(和 10.6.5)和 vim 7.2(和 7.3),并使用 bash 作为我的 shell。

答案1

如果权限方面存在问题,我期望得到这样的帮助。此页面对 OS X 上的 Vi 的扩展比我所能做的还要多。与其只是剪切和粘贴他们的答案,我更想让你看看它是否有帮助。

http://macvim-dev.github.io/macvim/

它提到分叉是非标准的,并且要进行分叉,必须提供二进制文件的完整路径。为整个路径创建别名,就像 vim='TERM=xterm-color vim'可以解决问题一样。

答案2

对 macvim 使用 -f 选项。使用 -R 选项可退出而不要求保存。

ls | mvim -Rf -

另一个例子...svn diff | mvim -Rf -

-f 选项

-f  or  --nofork    Foreground: Don't fork when starting GUI

-R 选项

-R          Readonly mode (like "view")

相关内容