MacVim和普通Vim有什么区别?

244

我对OS X还比较陌生,但在使用各种*nix系统中,我熟悉Vim。我看到很多人推荐在终端中运行MacVim而不是Vim。有人能告诉我MacVim和普通Vim之间的区别吗?


2
可能与Mac友好的按键绑定有关(Ctrl vs Command键)。 - ldog
4个回答

247

MacVim就是Vim,你在Vim中习惯的一切操作也可以在MacVim中完全相同。

与终端中的Vim或者Linux中的GVim相比,MacVim更加整合到整个操作系统中,并遵循许多Mac OS X的约定。

如果你主要使用GUI应用程序(例如YummyFTP + GitX + Charles),那么你可能会更喜欢MacVim。

如果你主要使用CLI应用程序(例如ssh + svn + tcpdump),那么你可能更喜欢在终端中使用vim。

在两种领域之间(CLI和GUI)来回转换可能有些“昂贵”。

我根据任务和情境使用MacVim和Vim:如果我处于CLI环境中,我只需键入vim filename;如果我处于GUI环境中,我只需调用Quicksilver并启动MacVim。

当我从TextMate切换过来时,我有点喜欢MacVim支持几乎所有Mac用户习惯使用的常规快捷键。我添加了一些自己的快捷键,模仿TextMate,但由于我在多个环境中工作,我强制自己学会了Vim的方式。现在我几乎完全相同地使用MacVim和Vim。对我来说,使用其中之一只是一个情境问题。

此外,正如El Isra所说,OS X中默认的Vim(CLI)略有过时。你可以通过 MacPorts安装最新版本,或者安装MacVim并将其添加到.profile别名中:

alias vim='/path/to/MacVim.app/Contents/MacOS/Vim'

如何在MacVim和Terminal.app中使用相同的vim?

另一个区别是,很多优秀的配色方案可以在MacVim中直接使用,但在Terminal.app中看起来很糟糕,因为它只支持8种颜色(+高亮),但你可以使用iTerm代替Terminal,因为它支持256种颜色。

所以...我的建议就是两者都用。

编辑: 我没有尝试过,但是最新版本的Terminal.app(在10.7中)应该支持256种颜色。我还在工作中使用10.6.x,所以暂时还会使用iTerm2。

编辑: 在shell中使用MacVim的CLI可执行文件的更好方法是将MacVim捆绑的mvim脚本移动到$ PATH中的某个位置并使用此命令:

$ mvim -v

编辑:是的,Terminal.app现在支持256种颜色。因此,如果您不需要iTerm2的高级功能,您可以放心使用默认的终端仿真器。


88
Homebrew是一款比MacPorts更为简便的软件包管理器,一旦安装Homebrew后,只需执行命令brew install macvim即可完成安装。请访问http://mxcl.github.com/homebrew以获取更多信息。 - Greg K
3
家庭酿造加一。我用家庭酿造比用MacPorts更顺利。尽管MacPorts仍然比家庭酿造有更多的软件包。 - Chev
4
@Greg,MacPorts有什么难度吗?sudo port install macvim - pellucide
1
@pellucide 当然,安装一个软件包并不会更加痛苦。但是在我看来,在Homebrew中管理依赖关系和操作系统默认软件包与已安装软件包要容易得多。此外,在Homebrew中永远不需要使用sudo - Roy Tinker
我在配方中没有看到任何相关内容,但其中一个依赖项可能有Emacs作为依赖项,而且Emacs默认安装在Mac上。 - romainl
显示剩余3条评论

14

编辑:请查看@Luke Davis的评论。

旧回答:

我认为切换到MacVim值得的原因之一是Yank可以使用系统剪贴板。

我终于可以在MacVim终端和其他应用程序之间复制粘贴了。


25
在终端 VIM 中,你也可以使用 * 寄存器来将内容复制到系统剪贴板。我认为这种方法更好,因为我不总是想要同步到系统剪贴板。所以在 VIM 中,例如当你想复制一行时,使用 "*yy 命令即可将其复制到剪贴板中。 - Luke Davis
1
只需在您的 .vimrc 文件中添加一行代码,即可将此设置作为默认设置。有关详细信息,请参阅 http://vim.wikia.com/wiki/Accessing_the_system_clipboard。 - Jim Deville
1
如果您想在终端 VIM 中复制到剪贴板,只需添加 + 符号。例如,如果您想将整个内容复制到剪贴板,则输入命令 :%y+ 即可。 - smallwat3r

3

关键是通过.vimrc配置文件实现按键绑定。至于剪贴板,您可以使用:set clipboard unnamed,vim中的复制将进入系统剪贴板。无论如何,我建议您使用这个vimrc配置文件,它包含了很多插件和绑定,会让您的使用体验更加顺畅。


3

不幸的是,使用“mvim -v”时,ALT +箭头窗口仍然无法工作。我没有找到任何启用它的方法:-(


感谢mvim命令,我通过HomeBrew安装了MacVim,但不知道有一个默认的符号链接命令。谢谢! - Roy Tinker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接