键入代码时如何最小化箭头键的使用?

时间:2009-06-21 02:13:27

标签: coding-style typing

键入代码时,我通常会关闭括号,返回内部,转到外面,输入分号等:

我可以从(|是插入符号)开始:

System.out.println()|

然后左转:

System.out.println(|)

然后这个:

System.out.println(foo()|)

再次回溯空间:

System.out.println(foo(|))

键入引号类似:

System.out.println(foo(""|))

...等

我的右手在主行和箭头键之间不断移动。我尝试了vim,虽然我知道基础知识,但对我来说仍然感觉很尴尬。

我该怎么做?我应该从左到右键入(打开括号,然后是内容,然后关闭括号,然后是分号)?

感谢。

12 个答案:

答案 0 :(得分:10)

首先,使用hjkl代替箭头键,可以在Vim中获得更快的速度。有关密钥的概述,请参阅Learning Vim the Pragmatic Way

但是,在这种情况下你可能想要的是AutoClose插件。它会自动插入右括号(或引号)和开口,并将插入符号放在它们之间。因此你来自

System.out.println(|)

System.out.println(foo(|))

System.out.println(foo("|"))

如果您再键入")),则插入符将“移动”结束字符,而不是插入新字符。虽然,到达行尾的更快捷方式可能是<Esc>A

System.out.println(foo(""));

因此,总而言之,可以通过输入System.out.println(foo("<Esc>A;来生成上述内容。

对于编辑配对字符,而不是插入它们,请参阅surround.vim

答案 1 :(得分:6)

那就是Java,如果你使用一个或多或少好的IDE,你应该能够自动完成,当你输入“System.out.println”并按Enter键接受自动完成时,括号将显示出来并且插入符号将在中间(哦,也会有引号!)

答案 2 :(得分:5)

如果您已经在vim中,请尝试使用h,j,k和l键。它们与箭头键做同样的事情,但更方便。试图养成按顺序打字的习惯可能也会有所帮助,但这需要付出一些努力。

答案 3 :(得分:4)

您可以通过按住Ctrl键并使用箭头键来保存击键。它不是移动一个字符,而是一次移动一个字。这也适用于退格时。因此,Ctrl-Backspace将删除整个单词而不是最后一个单词。

答案 4 :(得分:3)

别。

你习惯于结束你开始的东西 - 无论是右括号,括号,大括号还是.Close()调用匹配.Open(),或删除/免费调用以匹配你的新/ malloc - 是一个很棒的。即使您打算在不同的范围内“关闭”您的对象(如终止函数),您的习惯也会迫使您考虑正确释放资源。

是的,有一些有用的编辑器允许你更快地编写代码,你应该使用它,但不要让它们成为一个让你忘记关闭对象/释放资源的拐杖。

您问题的直接答案:大多数优秀的程序员编辑器都可以自定义/配置,因此您只需要阅读有关所选编辑器的高级配置的一些内容 - vim,emacs,Visual Studio编辑器。 / p>

答案 5 :(得分:3)

尝试AutoHotKey和我的脚本:

*!I::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{Up}"
*!K::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{Down}"
*!J::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{Left}"
*!L::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{Right}"
*!U::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{Home}"
*!O::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{End}"
*!h::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{Del}"

LAlt&amp; Shift ::('可选行')

这是关于持有LAlt +按下的东西:i,k,j,l(箭头键),u,o(home,end)或h(删除)。 如果您不想更改键盘朗,则最后一行是可选的。按照LAlt + Shift

进行布局

即使与shift和ctrl等修饰符结合使用,也可以使用它。

享受;)

答案 6 :(得分:2)

我会完全推荐vim ...因为它会帮助很多这个!另外,看看会自动关闭括号,方括号和大括号的东西......我在vim中有一些东西可以解决这个问题,因为我已经在括号内了。 / p>

答案 7 :(得分:1)

对Vim的另一次投票。此外,还有一些很棒的插件可供使用Vi键绑定的更多标准IDE。我不时在Netbeans中使用jVI

您会发现使用Vim越多,手腕就越容易。您还会发现,一个足够聪明的查找/替换可以为您节省大量的键击,就像全局动作正则表达式一样。

绑定:tabn和:tabp到类似的可访问内容并强制自己完成工作而不放弃并使用正确的GUI编辑器。

答案 8 :(得分:1)

我曾经完全线性地打字(是的,在vim中),永远不会让那些立即创建的关闭元素的来回匆匆而来。

然而,我现在使用Eclipse - 它为我创建它们,因为我去了,所以在a)“))混乱的结尾我只是点击结束并键入a;,根本不需要手动处理它这有时会让我感到困惑,但那没关系。

答案 9 :(得分:1)

我发现数字键盘使导航非常容易,因为home和pgup键非常接近。对于实际输入数字,你只需使用键盘的顶行(这很难学习我同意但一段时间后足够快)。

这对我来说唯一的缺点是使用笔记本电脑键盘和使用其他人的机器,我每次都要关闭num lock。

答案 10 :(得分:1)

一个好的IDE(伽利略几乎就在这里)会自动关闭括号,圆括号等,并且会在语句的末尾智能地插入分号。根本不需要使用箭头!

当然,对于Eclipse中的println,您只需键入sysout即可,但这可能是一个不好习惯。

但要小心!如果你太快,你的同事总会让你开车:P

答案 11 :(得分:0)

对我来说解决这个问题的最好方法是将键盘上的第二个布局更改为

h -> Left Arrow, j -> Up Arrow, k -> Down Arrow, l -> Right Arrow

现在,当我按下右手拇指下方的 Fn 按钮时,我会看到类似 Vim 的导航。我就是喜欢它。它适用于所有程序。我还设置了一些其他键,Page Up、Page Down 等。