我尝试使用 - 参数将命令的输出重定向到 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")