【问题标题】:How to minimize use of arrow keys when typing code?输入代码时如何尽量减少箭头键的使用?
【发布时间】:2009-06-21 02:13:26
【问题描述】:

键入代码时,我通常会关闭括号,返回内部,走出外部,键入分号等:

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

System.out.println()|

然后向左走:

System.out.println(|)

然后这个:

System.out.println(foo()|)

再次回溯一个空格:

System.out.println(foo(|))

键入引号是相似的:

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

...等等。

我的右手不断在主行和箭头键之间移动。我试过vim,虽然我知道基础,但我还是觉得很别扭。

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

谢谢。

【问题讨论】:

  • Vim 可以通过持续使用来驯服。

标签: coding-style typing


【解决方案1】:

首先,在 Vim 中使用 hjkl 代替箭头键可以提高速度。请参阅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。如果你想继续使用 Vim,我认为这是一个不错的选择(感谢 Marius 插件!)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 我正要提出同样的建议。 :-)
    • 没错,但也许你用右手得到的东西,你用另一只手失去的东西,通过改变和改变模式。
    • 至少它只涉及改变模式——而不是扭曲你的手来敲击像逃生元交替控制转移这样的键来做任何事情。
    • 切换模式的好处是你可以在不看键盘的情况下按下 ESC 键(在角落里很难错过),然后回到常规位置。在vi中,用户请求可以通过ESC(退出编辑)i(插入当前位置之前)来实现,这是一个左手按键和另一个右手按键,在您不需要的键中视觉寻找。
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      不要。

      你结束你开始的事情的习惯——无论是右括号、括号、大括号,还是匹配 .Open() 的 .Close() 调用,或匹配你的 new/malloc 的 delete/free 调用——是一个优秀的。即使您打算在不同的范围内“关闭”您的对象(如终止函数),您的习惯也会迫使您考虑适当地释放资源。

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

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

      【讨论】:

      • 呃,什么?不知道你的意思
      【解决方案6】:

      试试 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 & Shift:: ('可选行')

      这是关于按住 LAlt + 按下以下内容:i、k、j、l(箭头键)、u、o(home、end)或 h(delete)。 如果您不想更改键盘语言,最后一行是可选的。 LAlt +Shift 布局

      您甚至可以将它与 shift 和 ctrl 等修饰符结合使用。

      享受 ;)

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

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

          您会发现,您使用 Vim 的次数越多,它对您的手腕就越轻松。您还会发现,一个足够聪明的查找/替换可以为您节省不少击键次数,就像全局操作正则表达式一样。

          将 :tabn 和 :tabp 绑定到可以访问的东西上,例如 and 并强迫自己完成工作而不放弃并使用适当的 GUI 编辑器。

          【讨论】:

            【解决方案9】:

            我以前是完全线性输入的(是的,在 vim 中),永远无法掌握书写关闭元素立即创建的来回冲刺的窍门。

            但是,我现在使用 Eclipse - 它会在我进行时为我创建它们,所以在结束时带有 )")) 混乱我只是打完并输入一个;,根本不需要手动处理它. 这有时会让我感到困惑,但没关系。

            【讨论】:

              【解决方案10】:

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

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

              【讨论】:

                【解决方案11】:

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

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

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

                【讨论】:

                  【解决方案12】:

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

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

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

                  【讨论】:

                    猜你喜欢
                    • 2021-11-19
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-09-21
                    • 1970-01-01
                    • 2019-02-17
                    • 2011-09-04
                    • 1970-01-01
                    相关资源
                    最近更新 更多