这可能听起来有点挑衅,但它实际上是一个真正的问题.如果您不喜欢这种语气,请随时编辑.
现在,就像我在10年前的短暂体验中所理解的那样,它是一个原始的文本编辑器,在滚动条发明之前在屏幕底部创建了一条可编辑的行,并有一些疯狂的捷径来克服这个限制.
有人可以解释一下如何使用它比用普通的VS.NET编辑器更高效吗?此外,为什么有人想使用viEmu,据说可以将你的VS.NET变成一个古老的vi?
我愿意试一试,但我需要一些动力来克服学习曲线.
老实说,听起来你从未见过有人使用真正精通它的Vi.当您通常使用Visual Studio时,您经常会将手移到鼠标上,单击选项,对话框,类等.
使用ViEmu,您的手永远不会离开键盘.您正在编译,切换文件,突出显示文本组,修复缩进,在代码上执行复杂的动作以及在几秒钟内运行正则表达式搜索.对于快速打字员的人来说,它可以让你达到你无法做到的任务的速度.
许多人会说这样的话:"我的大部分开发时间都花在思考上.使用这些工具所获得的额外速度可以忽略不计."
在我看来,这是一个非争论.确实,对于大多数大型编程任务而言,您花费了更多时间进行规划和思考,然后实际上是在抛出代码.但这并不意味着能够通过IDE 2x更快地表达自己,并不会影响您作为程序员的工作效率.
viEmu页面本身有一篇非常好的文章可能有助于回答你的问题:为什么,为什么,为什么这样做??@!nutheads使用vi?
我花了几个月的时间试图教自己"正确地"使用vim,现在我很难站在使用其他编辑器,因为它们似乎动力不足而且很笨重.对于一个随机的例子,假设你有一行代码如下:
$welcomeMessage = "Welcome to SiteName!"; // shows at the top of homepage
在普通编辑器中,您将如何更改字符串?您可能必须伸手抓住并抓住鼠标并仔细选择它,或者将光标移动到第一个引号内,然后按住Shift键和右箭头直到达到右引号.
在vim中,我的光标位于引号之间的任意位置,我键入ci"
并删除引号内的所有内容并将其置于插入模式,以便我可以键入我想要的新值.我的手甚至不必从正常的打字位置移开.
有这么多的事情,我认为你真的需要花一些时间使用编辑器来了解它的强大程度.它起初非常缓慢且难以使用,这就是为什么许多人在短时间内尝试它并认为"这是愚蠢的,一切都更难",但过了一段时间你开始考虑动作,这一切开始变得自动化,它比使用"普通"编辑器快得多.正如我所说,我现在不能回去.
我也很难理解为什么人们选择vim作为他们的编辑,即使我不时地使用它,直到我终于"得到它".我想大多数解释"为什么?" 失败了,因为他们没有表现出几个关键点.要解释这些要点,首先您需要了解在vim中,您正在操作主要处于命令模式的文本.即默认情况下,按键是命令,通常不插入任何文本,除非这些命令(如append,insert,change)切换到插入模式.这使您可以轻松导航和编辑文本,而无需触摸鼠标或将手移开"编辑姿势".
现在关键点是:
Vim命令分为名词,动词和修饰符.
通过组合它们来执行编辑.
这就是赋予vim力量的原因.为了阐明这一点,这里有一些最常用的命令:
名词:word,sentence,block,quotes和braces.
动词:cchange i,vnsert,isual,delete
修饰语:inside,around,till
并说明如何混合它们:
想换一个字? cw
相同,但光标在单词的中间? caw
更改引号内的文字?ci",还改变了报价?ca"
删除功能体? di{
删除直到第一个逗号? dt,
删除直到第二个逗号? d2t,
跳到第一个逗号? t,
选择单词? viw
还要注意所有命令如何很好地转换为自然语言:
delete word
change inside{
在vim中,如果你学习一个新的动词,名词或修饰语,你可以很容易地混合和匹配你已经知道的.所以基本上只学习一件事,你学习如何做很多不同的事情.
另一个好处是vim会记住你使用过的命令,你只需按下即可重复序列..对于这篇文章,我不得不用标签包围很多字母.但我只做了一次,然后只是翻过每一封信并按下..
而这基本上是你"需要"了解vim的力量并在一夜之间成为高级用户的事情.
PS如果你不喜欢vim,因为它是基于控制台的,并且想要一个现代文本编辑器,那么我建议查看Sublime Text编辑器,这是一个很棒的编辑器,也支持vim模式.
PS2.我还建议将Esc键映射到jj和kk,这使事情变得更容易.
你错了"屏幕底部的一条可编辑线".窗口中的所有文本都是可编辑的.它确实滚动(所有版本),在gvim的情况下,滚动条.
也许你无意中将它置于"ex模式".这很容易完成,可能会令人困惑.