Visual Studio的viEmu插件有什么意义?

时间:2009-04-05 21:36:14

标签: visual-studio vim vi viemu

这可能听起来有点挑衅,但实际上这是一个真正的问题。如果您不喜欢这种语气,请随时编辑。

现在,就像我在10年前的短暂体验中所理解的那样,它是一个原始的文本编辑器,在滚动条发明之前在屏幕底部创建了一条可编辑的行,并且有一些疯狂的捷径可以克服这个限制。

有人可以解释一下,与普通的VS.NET编辑器相比,如何提高它的效率吗?此外,为什么有人想使用viEmu,据说可以将你的VS.NET变成一个古老的vi?

我愿意试一试,但我需要一些动力来克服学习曲线。

11 个答案:

答案 0 :(得分:113)

老实说,听起来你从未见过有人使用真正精通它的Vi。当您通常使用Visual Studio时,您经常会将手移到鼠标上,单击选项,对话框,类等。

使用ViEmu,您的手永远不会离开键盘。您正在编译,切换文件,突出显示文本组,修复缩进,在代码上执行复杂的动作以及在几秒钟内运行正则表达式搜索。对于快速打字员的人来说,它可以让你达到你无法做到的任务的速度。

很多人会说这样的话,“我的大部分开发时间都花在思考上。使用这些工具所获得的额外速度可以忽略不计。”

在我看来,这是一个非争论。确实,对于大多数大型编程任务而言,您花费了更多时间进行规划和思考,然后实际上是在抛出代码。但意味着能够通过IDE 2x更快地表达自己,并不会影响您作为程序员的工作效率。

答案 1 :(得分:94)

viEmu页面本身有一篇非常好的文章可能有助于回答你的问题:Why, oh WHY, do those #?@! nutheads use vi?

我花了几个月的时间试图教自己“正确地”使用vim,现在我几乎无法使用其他编辑器,因为它们似乎动力不足而且很笨重。对于一个随机的例子,假设您有一行代码如下:

$welcomeMessage = "Welcome to SiteName!"; // shows at the top of homepage

在普通编辑器中,您将如何更改字符串?你可能不得不伸手抓住你的鼠标并仔细选择它,或者你将光标移到第一个引号内,然后按住Shift键和右箭头直到你达到右引号。

在vim中,我的光标位于引号之间的任意位置,我输入 ci" ,它会删除引号内的所有内容并将我置于插入模式,这样我就可以输入我想要的新价值。我的手甚至不必从正常的打字位置移开。

有很多这样的事情,我认为你真的需要花一些时间使用编辑器来了解它有多强大。它起初非常缓慢且难以使用,这就是为什么许多人在短时间内尝试它并认为“这是愚蠢的,一切都更难”,但过了一段时间你开始考虑动作,这一切开始变得自动化,它比使用“普通”编辑器快得多。正如我所说,我现在不能回去了。

答案 2 :(得分:26)

我也很难理解为什么人们选择vim作为他们的编辑,即使我不时使用它,直到我终于“得到它”。我想大多数解释“为什么?”失败了,因为他们没有表现出几个关键点。要解释这些要点,首先您需要了解在vim中,您正在操作主要处于命令模式的文本。即默认情况下,按键是命令,通常不插入任何文本,除非这些命令(如 a ppend, i nsert, c hange)切换到插入模式。这使您可以轻松导航和编辑文本,而无需触摸鼠标或将手移开“编辑姿势”。

现在关键点是:

  • Vim命令分为名词,动词和修饰符。
  • 通过组合它们来进行编辑。

这就是赋予vim权力的原因。为了阐明这一点,这里有一些最常用的命令:

  • 名词: w ord, s entence, b lock,quotes and braces。
  • 动词: c 更改, i nsert, v isual, d elete
  • 修饰符: i nside, a round, t ill

并说明如何将它们混合起来:

  • 想要改变一个词? C 瓦特
  • 相同,但光标在单词的中间? C 瓦特
  • 更改引号内的文字? c i ,还会更改报价? c a ”< / KBD>
  • 删除功能体? d {
  • 删除直到第一个逗号? d
  • 删除直到第二个逗号? d 2
  • 跳转到第一个逗号?
  • 选择单词? v 瓦特

还要注意所有命令如何很好地转换为自然语言:

  • d elete w ord
  • c hange i nside {

在vim中,如果你学习一个新的动词,名词或修饰语,你可以很容易地混合和匹配你已经知道的。所以基本上只学习一件事,你学习如何做很多不同的事情。

另一件好事是vim会记住你使用过的命令,只需按即可重复序列。对于这篇文章,我不得不用&lt; kbd&gt;包围很多字母。标签。但我只做了一次,然后只是翻过每个字母并按

这基本上就是你“需要”了解vim的力量并在一夜之间成为高级用户的事情。

P.S。如果你不喜欢vim,因为它是基于控制台的,并且想要一个现代文本编辑器,那么我建议查看Sublime Text编辑器,这是一个很棒的编辑器,也支持vim模式。

P.S.2。我还建议将 Esc 键映射到 j j k k ,其中让事情变得更容易。

答案 3 :(得分:6)

你错了“屏幕底部的一条可编辑线”。窗口中的所有文本都是可编辑的。它会滚动(所有版本),在gvim的情况下,它有滚动条。

也许你无意中将它置于“ex模式”。这很容易做到并且可能令人困惑。

答案 4 :(得分:4)

另一个答案让我觉得使用vim观看一些熟练的编辑会非常有启发性,所以我挖出了这段视频,展示了编码时的基本和更高级的动作。这个人使用某些标记等可以获得更高的效率,但它提供了一个想法。

http://www.youtube.com/watch?v=FcpQ7koECgk&feature=related

答案 5 :(得分:4)

如果您需要灵感或想要看到真正知道他们在Vim上做什么的人,请查看Gary Bernhardt的字符串计算器Kata在Python中,看看他吧! http://vimeo.com/8569257

答案 6 :(得分:3)

我认为他们对你在viEmu hompage上的问题有一个长期和可接受的答案:

  

另一个更强大的例子:让我们采用'ce'命令,它由'c'和'e'组成。 'c'hange命令删除下一个动作命令指定的范围,并进入插入模式。它与'd'相同,但区别在于它进入插入模式,而不是保持正常模式。恩惠是您在下一个(短)输入会话中键入的文本也是命令的一部分。所以如果你做'ceHello&gt;',你要做的就是用'Hello'和'。'从光标替换到单词的结尾。之后的命令将完全相同:用'Hello'替换单词的结尾。

自: http://www.viemu.com/a-why-vi-vim.html

我半年前安装了 viEmu 。但我不得不说(可能没有强大的Linux经验)我从来没有用过它。太陌生,太远,太复杂。

所以恕我直言 viEmu 这是一个很好的技术和历史挑战,但95%的开发者都没有。

答案 7 :(得分:2)

基本上使用Vi(或ViM)你会变得更快,因为你不需要触摸鼠标并且键映射得到改善(这代表了学习曲线成本,但值得付出努力),可以非常轻松地进行任何文本操作一旦了解了基础知识,我就会这样做。

Top 10 things Vi user need to know about Vim

答案 8 :(得分:1)

我没有VS.Net的经验,但我想它具有与任何其他IDE相同的功能。

我发现在IDE中学习编辑器的所有关键命令是Vi的充分替代品。重命名,缩进,格式化,移动线条等等。

所以我想主要的胜利将是那些已经知道Vi的人,而不必学习VS.Net。

但是再一次,Vi有一些真正深奥但功能强大的功能,这些功能可能无法与您的标准IDE编辑器匹配。

答案 9 :(得分:1)

我认为你真的应该试试Vim 如果你十年前很快就尝试了Vi,我可能会理解你并不欣赏它。乍一看它并不是真正的用户友好型。实际上,当你开始对这些动作感到舒适并开始通过自定义制作自己的动作时,它的真正力量就会显露出来。 一旦Vim对你熟悉,你就会明白为什么值得学习。

答案 10 :(得分:0)

这些天我实际上只使用VS进行调试。用vim编码(真正的vim,而不是viemu)只是一种更好的体验。

现在,我不会声称使用一个而不是另一个会对生产力产生任何影响 - 毕竟我花了大部分时间来试图找出如何解决问题 - 输入代码很容易。