与终端仿真器中的Vim相比,gVim和/或MacVim提供了哪些附加功能?


23

我正在通过观看截屏视频来学习Vim。我想知道为什么很多人使用gVim或MacVim?

从我可以看到,GUI Vim版本仅具有涉及使用鼠标的其他功能。但这不是对“ Vim哲学”的反对吗?

谁能解释GUI Vim版本相对于基于终端的Vim提供哪些附加功能?


Gui vim允许使用256种以上的颜色,以及其他文本格式,因此可能很吸引人。我个人看不到为什么人们喜欢gui vim,因为我发现终端vim更方便。但这是我的看法。
EvergreenTree'3

Answers:


27

某些适用于gVim的功能:

  • 24位颜色支持开箱即用(以获得在终端vim的颜色相同的金额,你必须尝试有点困难,看到这个这个)。对于真正的斜体,同样适用(请参阅thisthis)。请注意,您应该使用支持真斜体的字体。
  • 其他一些更高级的图形功能,例如用于拼写检查的“摆动线”,更灵活的光标形状等。终端只能执行“等距字符块”。
  • 启用鼠标支持(如果不保留的话)(包括文件拖放)。终端Vim也可以很好地处理鼠标,但不能拖放。
  • 提供了一个不错的,可自定义的菜单系统,其中每个选项都列出了相应的Vim命令。
  • gVim可以为您提供滚动条,用于滚动Vim缓冲区(而不是终端滚动条)。
  • 您可以弹出“气球”(又名“工具提示”)。
  • 具有集成的字体支持
  • 某些键绑定可以使用gVim开箱即用,例如CTRL+ SpaceMeta+ e...,而在其他情况下,它们需要对终端进行更多的调整。

其次,即使你喜欢用Vim的,安装一个GUI版本可能比没有版本提供更多的编译时的功能,至少在某些发行版(如clipboardclientserver基于Debian的系统上支持vim-noxVS vim-gnome)。

另外,在Windows下,与控制台Vim窗口相比,可以更轻松地调整gVim窗口的大小。

gVim 不能做的事情:

  • gVim不是一个(完整的)终端仿真器,因此启动使用很多终端功能的外部程序将不能很好地工作。例如,尝试使用:!vim:!mutt:!irssi从gVim使用,或按K一个单词(默认情况下,会打开该单词的手册页)。另请参阅此

1
如果您打算大量使用SSH,则常规vim也会更加方便,因为它可以放在tmux或screen下,并且不需要两端都支持X11。
凯文

实际上,从后来的8.0补丁之一开始,gvim便包含了一个终端。因此,您可以启动终端,并且应该能够在其中运行交互式程序。
克里斯蒂安·布拉班德

1
菜单在GUI vim中当然更好,也更加集成,但是它们确实存在并且可以在控制台vim中使用。必须找到源menu.vim,然后可能以类似于菜单的方式使用set wildmenu:emenu <Tab>导航。
brhfl

@brhfl我会说“几乎”可用。
大师

@ChristianBrabandt社区Wiki!继续编辑。:)
muru

4

我只是可以谈谈gVim。除了基本的区别之外,我发现使用gVim从一开始就可以通过阅读菜单上显示的每个快捷方式对基本命令(例如,将带有“ + y”的所选文本复制到剪贴板的一种方法)的学习有所帮助。听起来很傻,但您确实应该花一些时间遍历菜单,而不仅仅是单击一个项目,而是实际测试它显示的快捷方式。


4

我们中的某些人陷入了Windows领域,因此终端选项不太方便。

在Windows资源管理器中,您可以右键单击文件,然后立即使用gVim打开它。这比打开终端(cygwin或其他工具),导航到目录并为文件添加文件更加容易和快捷。

(在我的工作PC上,gVim和MinGW bash满足了我的大部分编辑需求)


它也适用于Linux世界。如果要直接从Nautilus打开vim中的文件,则gvim可用,而vim不可用。
kuldeep.kamboj 2015年

@ kuldeep.kamboj这仅仅是配置Nautilis的问题;您可以使用xterm -e vim %或类似的方法……
Martin Tournoij 2015年

1
这就是我gVim安装的原因。Windows终端字体使您流血。
Shahbaz

1

添加一个琐碎的事情:使用gvim时,我的桌面窗口列表显示一个漂亮的Vim符号而不是Xterm符号,如果打开了许多xterm,则可以更轻松地切换到编辑器。


2
你可以改变窗口的图标,xseticon:-)
马丁Tournoij

1

对我来说,继续使我继续使用MacVim而不是终端+ vi的关键一点是速度。我有各种各样的vim插件,语言提示和语法检查器,它们出人意料地使终端vi陷入困境,而MacVim的已编译bin可以很好地处理所有语法糖。


0

使用gVim可以根据模式(例如“普通”与“插入”)更改光标形状。在像Konsole这样的终端程序中使用vim时,这应该可以工作,但是我从未见过它能工作。


我不太倾向于在Linux上使用特别高级的终端仿真器,但是我可以确认它在Mac上的mintty / cygwin和iTerm2中能很好地工作。
brhfl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.