这可能听起来有点挑衅,但实际上这是一个真正的问题。如果您不喜欢这种语气,请随时编辑。
现在,就像我在10年前的短暂体验中所理解的那样,它是一个原始的文本编辑器,在滚动条发明之前在屏幕底部创建了一条可编辑的行,并且有一些疯狂的捷径可以克服这个限制。
有人可以解释一下,与普通的VS.NET编辑器相比,如何提高它的效率吗?此外,为什么有人想使用viEmu,据说可以将你的VS.NET变成一个古老的vi?
我愿意试一试,但我需要一些动力来克服学习曲线。
答案 0 :(得分:113)
使用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中,如果你学习一个新的动词,名词或修饰语,你可以很容易地混合和匹配你已经知道的。所以基本上只学习一件事,你学习如何做很多不同的事情。
另一件好事是vim会记住你使用过的命令,只需按。即可重复序列。对于这篇文章,我不得不用< kbd>包围很多字母。标签。但我只做了一次,然后只是翻过每个字母并按。。
这基本上就是你“需要”了解vim的力量并在一夜之间成为高级用户的事情。
P.S。如果你不喜欢vim,因为它是基于控制台的,并且想要一个现代文本编辑器,那么我建议查看Sublime Text编辑器,这是一个很棒的编辑器,也支持vim模式。
P.S.2。我还建议将 Esc 键映射到 j j 和 k k ,其中让事情变得更容易。
答案 3 :(得分:6)
你错了“屏幕底部的一条可编辑线”。窗口中的所有文本都是可编辑的。它会滚动(所有版本),在gvim的情况下,它有滚动条。
也许你无意中将它置于“ex模式”。这很容易做到并且可能令人困惑。
答案 4 :(得分:4)
另一个答案让我觉得使用vim观看一些熟练的编辑会非常有启发性,所以我挖出了这段视频,展示了编码时的基本和更高级的动作。这个人使用某些标记等可以获得更高的效率,但它提供了一个想法。
答案 5 :(得分:4)
如果您需要灵感或想要看到真正知道他们在Vim上做什么的人,请查看Gary Bernhardt的字符串计算器Kata在Python中,看看他吧! http://vimeo.com/8569257
答案 6 :(得分:3)
我认为他们对你在viEmu hompage上的问题有一个长期和可接受的答案:
另一个更强大的例子:让我们采用'ce'命令,它由'c'和'e'组成。 'c'hange命令删除下一个动作命令指定的范围,并进入插入模式。它与'd'相同,但区别在于它进入插入模式,而不是保持正常模式。恩惠是您在下一个(短)输入会话中键入的文本也是命令的一部分。所以如果你做'ceHello>',你要做的就是用'Hello'和'。'从光标替换到单词的结尾。之后的命令将完全相同:用'Hello'替换单词的结尾。
自: http://www.viemu.com/a-why-vi-vim.html
我半年前安装了 viEmu 。但我不得不说(可能没有强大的Linux经验)我从来没有用过它。太陌生,太远,太复杂。
所以恕我直言 viEmu 这是一个很好的技术和历史挑战,但95%的开发者都没有。
答案 7 :(得分:2)
基本上使用Vi(或ViM)你会变得更快,因为你不需要触摸鼠标并且键映射得到改善(这代表了学习曲线成本,但值得付出努力),可以非常轻松地进行任何文本操作一旦了解了基础知识,我就会这样做。
答案 8 :(得分:1)
我没有VS.Net的经验,但我想它具有与任何其他IDE相同的功能。
我发现在IDE中学习编辑器的所有关键命令是Vi的充分替代品。重命名,缩进,格式化,移动线条等等。
所以我想主要的胜利将是那些已经知道Vi的人,而不必学习VS.Net。
但是再一次,Vi有一些真正深奥但功能强大的功能,这些功能可能无法与您的标准IDE编辑器匹配。
答案 9 :(得分:1)
我认为你真的应该试试Vim 如果你十年前很快就尝试了Vi,我可能会理解你并不欣赏它。乍一看它并不是真正的用户友好型。实际上,当你开始对这些动作感到舒适并开始通过自定义制作自己的动作时,它的真正力量就会显露出来。 一旦Vim对你熟悉,你就会明白为什么值得学习。
答案 10 :(得分:0)
这些天我实际上只使用VS进行调试。用vim编码(真正的vim,而不是viemu)只是一种更好的体验。
现在,我不会声称使用一个而不是另一个会对生产力产生任何影响 - 毕竟我花了大部分时间来试图找出如何解决问题 - 输入代码很容易。