你是如何学习键盘快捷方式导航的?

4
你在编程时学习键盘快捷键的具体技巧是什么?
我指的不是通过查看列表进行学习。相反,你使用哪些技巧来建立自动肌肉记忆?
你是否每天选择一个键盘快捷键并在一整天中练习它?你是专注于同时学习所有快捷键吗?你是先学习一个应用程序的快捷键,然后再转到另一个应用程序吗?你有奇怪的“游戏”可以帮助您提醒吗?还是什么都不做,或者采用某种激进的方法?
这对我来说是一个有趣的问题,因为我的新(第一台)Mac即将到货,我想知道我将使用哪些方法最快地学会尽可能少地使用鼠标,在一个我完全陌生的环境中。

2
请不要误解,这不是一个编程问题。在问题中加入“while programming”并不能使其成为正当的与编程有关的问题。“在编程时,你最喜欢什么颜色”这样的问题通常被认为是没有意义的,会淹没 SOFlow 的真正目的。 - Sampson
@Jonathan:键盘快捷键是程序员在工作中提高生产力和舒适度的工具。它并不直接与编程本身相关,但每个程序员都必须面对它。 - glmxndr
12个回答

8
一次只学习一个关键功能(无意冒犯)。
我采用厌倦驱动的学习方法。当我厌倦用鼠标调用一个常见的功能时,我会迅速掌握相应的键盘快捷键。一次只学习一个,不做计划。完成任务,不要让快捷键分散你的注意力。如果你不过于在意它们,它们会很快掌握。

这是一个非常明智的评估。我的问题是,我倾向于“忘记”去学习,而只是继续以低效的方式工作,同时与系统产生潜在的失望感(就像过去几年里我在工作中无法运行Linux时对Windows的感受一样)。我知道这是个人问题。我想我是在寻找一种介于两者之间的东西——更多地让我记住那个学习目标的东西。 - JohnMetta
那么我猜Lars的答案被正确地选为了被接受的答案。一个妥协的办法是不要拿作弊纸,而是逐渐自己制作。 - glmxndr

3
当我开始使用Mac时,我使用keycue来帮助。它提供了当前应用程序所有快捷方式的快速摘要。
对于Intellij,有一个名为“keypromoter”的插件,它会在屏幕上闪现您使用鼠标执行的操作的快捷方式。如果您多次使用鼠标动作,则会询问您是否想将新的快捷方式分配给它。

这真是太棒了,我的朋友!谢谢你。(我喜欢它实际上会提示你为其分配一个键!)感谢Keycue,当我的MacBook Pro到达时,我会研究一下。 - JohnMetta

2

找到一份列出最有用快捷键的参考卡/备忘单,然后打印一份副本并贴在显示器侧面。

使用应用程序一段时间后,熟悉了大多数快捷键,重新阅读完整的文档,并发现第一次看时没有被认为非常有用的新功能。


我在显示器上贴了黄色的标签,上面写着最近发现的有用快捷键。不时地更换它们。 :) - Arnis Lapsa

2

我通常通过注意到我最需要的功能,并在使用鼠标选择功能时记下快捷键来学习快捷方式。当然,这只适用于显示键盘快捷键以及主菜单项或工具栏按钮工具提示的应用程序。(幸运的是,Eclipse确实做到了这一点。)


1

我曾经尝试过“断网戒鼠”法,有一定的成功率:就是直接拔掉鼠标。把它放在你够不到的地方,然后试着适应。


哇,令人印象深刻。但是...为什么? - glmxndr
这是我很久以前的原始方法,但是由于在一段时间内我的生产率基本为零,所以非常痛苦。我不能再这样做了。 - JohnMetta
1
为了提高生产力做了尝试,但是失败了,主要是因为有太多的事情我不知道如何在没有鼠标的情况下完成,而且浏览网页实在太痛苦了。 - JesperE
当你在那里的时候,切换到dvorak、colemak、enti-key++或任何其他键盘,现在继续尝试提高生产力,我在看着呢!;) - Trillian

1

快捷键是方便之事,当我经常使用它们时,我会变得很舒适。

换句话说,我不练习偶尔使用的快捷键,而是那些我一直在使用的快捷键(复制、粘贴、注释代码块等)最终成为了我的“闭着眼睛也能做到”的技能。

没有什么激进的东西,没有游戏,没有练习——只有使用。


1

像速拧魔方一样记忆代码算法

  1. 阅读快捷方式
  2. 练习20-30次(最初参考快捷方式列表)
  3. 尝试理解保持快捷方式的原因(例如,ctrl + C 用于复制等)。这一步需要一些脑力,但会将快捷方式存储在您的短期记忆中
  4. 按以下时间间隔复习相同的快捷方式-> 6小时,24小时,3天,1周,到那时您就掌握了它!

有些软件(如Photoshop)有太多的快捷键,实际上无法全部吸收,但是练习是最好的选择。


0
我会打印一份全面的快捷键备忘单,并将其放在桌子上。我从列表中挑选一两个重要的快捷键,将它们写在便利贴上,然后贴在显示器上。
等我掌握了这些快捷键,我就会再挑选几个并重复这个过程。

0

个人而言,我并不是很喜欢使用键盘快捷键,因为它们会妨碍我在 GUI 之间移动,而且我也没有觉得它们能够提高我的工作效率——但这可能只是因为我思考的速度比打字慢,你的情况可能不同。

我大部分的“编码”时间都花在了尝试消除冗余和简化设计上——我从来不会只写一个方法然后就离开它,我通常会重写几次,直到代码易读且基本无 bug;因此打字速度并不是那么重要。如果我在编码前不花时间去思考,那么我以后就会在重构和修复 bug 上花费更多的时间。

总之,当我做某件事情足够多次时,我就会想出一种按键方式来完成它。经过多年使用 Eclipse,我现在知道了大约 5 种加速器。

ctrl-shift-t(转到类型)可能是其中最实用的一个(好吧,在 ctrl-space 之后,我甚至不认为它是一个加速器,只是打字的一部分)。

优化导入(我想它是 shift-alt-o)也很方便,但有 9 次中有 10 次 ctrl-space 已经可以为你完成这个操作了。当你需要粘贴大量代码时,它就派上用场了。

有时候我会按下ctrl-1打开“常见修复”选项。当我需要一次性“修复”很多东西时,我会这样做。
如果出现新的快捷键,按下ctrl-shift-L可以给我一个所有快捷键的列表。
就是这样了。

Ctrl-C,Ctrl-X,Ctrl-V。你肯定不是在使用编辑菜单复制/粘贴文本吧? - JesperE
是的,但我不再认为那是编码的一部分了,就像ctrl-space一样,它更多地是打字的一部分。(现在我发现自己在聊天和其他事情中一直试图按ctrl-space,当我不想输入单词的其余部分或者我想让它帮我纠正拼写错误时!为什么不能在任何地方都起作用呢?) - Bill K

0

配对编程。理想情况下,是“放荡不羁”的配对编程。

你的IDE有成千上万个命令,如果你打算学习所有这些命令,那将需要很长时间,最终也不值得麻烦。重要的命令是你经常使用(或应该使用)的命令,可以为你节省大量时间的命令。如果你与其他程序员配对,每当他们做出惊人的事情 - 每当你期望看到很多步骤,而变化“只是发生了” - 你会大喊,“嘿!你是怎么做到的?”然后你的搭档告诉你。那种经历的震撼和愉悦会让你记住那个技巧。这是最好的学习方式。

进行“放荡不羁”的配对的原因是,我们每个人都学会了不同的快捷方式、不同的技巧;你与更多的人配对,就有更多的机会接触到伟大的技巧。

这种学习不是故意的;它是自然而然地与实际完成工作并行进行的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接