2009-06-21 80 views
13

当输入的代码,我会常闭括号,进去了,到外面去,键入分号等:如何在输入代码时尽量减少使用箭头键?

我可能会开始(|是尖):

System.out.println()| 

然后向左走:

System.out.println(|) 

然后此:

System.out.println(foo()|) 

再次回溯荷兰国际集团的空间:

System.out.println(foo(|)) 

打字报价是相似的:

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

...等。

我的右手在主行和方向键之间不停地移动。我已经尝试过vim,虽然我知道基础知识,但对我来说仍然感觉很尴尬。

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

谢谢。

+1

Vim可以被驯服与持续使用。 – 2009-06-21 02:21:33

回答

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

5

如果您已经在vim中,请尝试使用h,j,k和l键。他们和箭头键一样,但更方便。试图习惯按照顺序输入的习惯也可能会有所帮助,但这需要付出一些努力。

+0

我刚刚提出相同的建议。 :-) – 2009-06-21 02:20:42

+1

这是正确的,但也许你用右手失去了另一只手,通过改变和改变模式而获得的东西。 – 2009-06-21 03:09:41

+1

至少它只涉及改变模式 - 不要扭曲你的手,像逃避元交替控制转变做任何事情。 – 2009-06-21 03:14:10

2

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

6

嗯,那就是Java,如果你使用的是一个或多或少好的IDE,你应该可以自动完成,这样当你键入“System.out.println”并按回车键接受自动完成时,括号会出现并脱字号将在中间(哦,并且会有报价呢!)

3

不要。

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

是的,有帮助的编辑器可以让你更快速地编写代码,但是不要让它们成为让你忘记关闭对象/释放资源的拐杖。

直接回答您的问题:大多数优秀的程序员编辑器都可以自定义/配置,因此您只需阅读有关所选编辑器(vim,emacs,Visual Studio编辑器)的高级配置。

4

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

1

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

你会发现越多使用Vim,它越容易在手腕上。您还会发现,一个足够聪明的查找/替换可以为您节省不少击键,正如全局行为正则表达式一样。

绑定:tabn和:tabp可以访问某些东西,并强制自己在不放弃和使用合适的GUI编辑器的情况下完成任务。

1

我曾经完全线性地键入(是的,在vim中),永远不会得到立即编写关闭元素的匆匆来回。但是,我现在使用Eclipse--它为我创建了它们,因为我走了,所以在末尾有一个“))混乱的东西,我只是打了结,然后输入一个;;不需要手动处理它所有这有时让我困惑,但没关系

1

我发现数字键盘使得导航非常简单,因为home键和pgup键非常接近,对于实际输入数字,您只需使用键盘的第一行(即难以学习我同意,但在一段时间后足够快)

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

1

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

当然,对于Eclipse中的println,你可以输入sysout,但这可能是一个不好的习惯。

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

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 &移::( '可选线')

这是关于控股LALT +按下:i,k,j,l(方向键),u,o(主页,结尾)或h(删除)。 如果您不想更改键盘语言,最后一行是可选的。布局由LAlt +转变

你甚至可以使用它与修饰如shift和ctrl。

享受;)