俄语原文的作者: varanio您可能已经阅读了最近的
一篇文章,暗示vim与IDE相比非常出色 ,因为它们的键入速度很低。
让我们回想一下,该文章的主要信息是vim的杀手级功能在于其模式,使其他功能胜过其他功能。 也就是说,作者承认IntelliJ IDEA和其他IDE提供了易于使用的热键和其他用户体验。 但是,由于它们缺乏模式,因此vim应该是每个人的首选。
然后作者建议,与其按
ctrl+arrows
在单词之间移动,不如按Esc,e然后返回到
i
编辑模式。 可以理解,所有这些麻烦都是因为作者发现
持有ctrl
不方便 。
我知道批评vim的文章获得了很多反对,但我只需要大声说出来。
您的代码行是否很长,以至于您不敢将钥匙一直按住到真正需要模式的地步? 当您输入长常量时,我可以得到它-在这种情况下,您可以按Caps Lock并输入其名称。 即使这样,我几乎也不会一年多次按下此键。 但是要在两个单词之间来回切换模式以向前移动几个单词时,更不用说调用该vim的杀手级功能了,听起来似乎有些牵强。
顺便说一句,在IntelliJ IDEA中,您可以使用一个键来更改单词(或所选文本)的大小写,因此也不需要使用Caps Lock。
我承认vim可以很好地编辑远程服务器上的配置文件。 而且,对于JetBrains尚未使用过的新语言,vim可能非常有用。 对于vim而言,编写自定义插件更容易(但在99%的情况下,您将不需要具有足够的IDE的插件)。 也许,这对于编辑长文本更为方便。 但这与标准工业编码无关!
我应该在这里立即提及几点。
通过安装插件和学习热键来操作这些插件,可以将Vim变成一种IDE。
确实可以,但是为什么有人会打扰?
考虑到IDE具备了所有功能并具有更加用户友好的体验,这似乎是一个奇怪的挑战。 我保证,您不必使用鼠标!
让我通过一个示例来解释不用鼠标进行编辑的情况。 我首先打开IntelliJ IDEA并创建一个新文件。
我按p,IDE会立即提示我有关单词包的建议。 我需要做的就是按Enter键,将单词包放入编辑器中的文本中。
然后我按
c
,IDE立刻建议类。
输入类的名称(例如
Habr
),键入花括号
{
,然后IDE会自动在光标后面完成右括号。
然后输入pu,IDE便知道它可能是公共的。 我输入
H
并按
Enter
以获取Habr,因为IDE已经知道我要创建构造函数。
我着手编写构造函数的主体,例如,我调用了init()方法,该方法尚不存在。 我的IDE用红色突出显示它,表明该方法不存在。 当我按下
alt-ENTER
,IDE将在正确的位置插入代码片段:
private void init() { }
如果我碰巧在此方法中键入
new Habr(5)
(当然也提示了Habr这个词),即,如果我尝试调用不存在的构造函数,则IntelliJ IDEA将立即强调该位,因此我只需按
<alt-ENTER>
并选择我要执行的操作:是向构造函数添加int参数,还是添加具有int参数的新构造函数。 我选择后一个选项,IDE会在第一个之后立即添加一个新的构造函数:
public Habr(int i) { }
我不会提及自动缩进和其他功能来帮助您编辑代码,因为它们自然存在。
这是我最后得到的:
package x; class Habr { public Habr() { init(); } public Habr(int i) { } private void init() { new Habr(5); } }
我所做的只是按了几个键和
<alt-ENTER>
热键。
我没有安装任何插件。
我没有训练一个月就能做到这一点。
我从来没有碰过鼠标(我在这里使用Caps Lock并不是因为我想像坚果壳一样大喊大叫,而是因为尝试该功能很有趣)。
我没有切换到任何模式,也不必调出任何键或旋钮组合。 我唯一使用的是
<alt-ENTER>
(但这是与上下文相关的东西,一种“解决问题”的热键)。
如果您讨厌使用鼠标,则可以使用特殊的热键浏览代码,例如跳转到正确的类,文件,方法,行号等。
您可以通过反复按
<ctrl-W>
来选择文本,以选择当前单词,大括号之间的当前文本等。
Vim允许您跳到特定角色。 例如,您无需触摸鼠标即可获得文本行中的字母x。 但是,IDE也可以通过按
<ctrl-f>
并键入所需的文本块来为您提供此机会。 顺便说一下,这也是一种模式。 叫做搜索模式,mode!
我也不需要鼠标跳到正确的函数调用,然后再没有鼠标(按
ctrl-b
)就可以跳到该功能的描述。
Vim具有IDE缺少的一些独特的即用型编辑功能
- 移至下一个/上一个段落。
是的,这听起来像是对IDE有用的功能。 而是为Habr编辑文章而不是实际编码。 - 移至下一个空格字符。
好吧,您可以将其称为一项有用的功能,但不要太酷。 反复按ctrl+arrows
将产生相同的效果。 - 上/下跳半页。
我还没有决定是否需要这个东西。 - 跳到屏幕上的第一/最后/中间行。
我真的不明白这是干什么的。 也就是说,它可能会在一段时间内派上用场,但这绝不是杀手级功能。 - 可以精确删除N行代码。
是的,对,我每天都这样做。 每个人都需要不时删除准确的19行代码,对吗?
我绝对不是vim专家,所以我可能错过了一些关键方面。 请在评论部分分享您的想法。 是的,当然,除此之外还有数不胜数的插件。 但是IDE也有它们,并且数量相当。
总结
这是我对此的总结。 无论您怎么说,我都会远离vim进行代码编辑。 使用模式而不是按住ctrl甚至
ctrl-alt-shift
都不给我留下深刻的印象。 IDE为您提供了更多现成的功能,而无需花费一些时间来学习和分配
热键 。 只需学习几个热键,即可使用IDE完成大多数日常任务。 如果您愿意使用鼠标,甚至可以完全跳过它们。
早已确定,与实际编写代码相比,程序员花费更多的时间来学习代码。 因此,无论是否使用鼠标都没有太大的区别。 但是,让我重申一下,IDE使您无需使用鼠标即可执行几乎所有操作(如果不是全部操作)。
只要满足以下条件,Vim在远程编辑服务器上的配置文件时将比nano更好。
- 您需要掌握好vim。
- 您需要编辑工业数量的配置文件才能感受到其优势。 如果您只需要每月一次或两次对一个配置文件进行更改,那么nano或实际上任何东西都可以正常工作。
您可以开始对我投反对票,或者,最好是提供您的反对意见:)。