很多编程 IDE 里并没有模式区分,只能一股脑输入文字。这就导致大部分快捷键操作,都需要依靠 Ctrl 和 Alt 的组合,或者用鼠标才能达成,但是用太多的鼠标,明显分散注意力,降低了开发效率。

如果有模式区分,那么 Ctrl 和 Alt 都可以不需要。比如切换到浏览代码模式下,e 绑定向上翻页,d 绑定向下翻页。这样就可以让注意力专注在键盘上,甚至可以不需要方向按键来辅助。

我个人把`绑定到了 leader key, 用来切换各种模式。硬核码农只需要 IDE 嵌入一个迷你 inputbox 来驱动命令,就完全足够了。

快捷键不够用,然后也记不住,个人也感觉 input 是最有效的,vscode 除了必要的几个快捷键,很多功能基本都靠 cmd+shift+p ,mac 上全用帽子,不够用的就写或者找插件
以前也觉得用鼠标浪费时间,但是后来换触摸板之后这个感觉消失了,可能是自己习惯了

感觉和 vim 类似?

对于现代化开发,ide 很重要,是管理项目最佳方式。

我只是不太满意 ide 对鼠标有很大的依赖。

加个模式切换就能改变现状,但是官方就是不加,只能自己动手了。

真有那么多代码写嘛

我的 IDE 基本上就是按照楼主说的这种方式配置的,在浏览、编辑代码的时候,手指基本不会脱离键盘的 home row ,很多操作变成了肌肉记忆。

我的快捷键分为两类,一类是从 VS 上继承下来的( Ctrl K + ),另一类是从 space vim 学习的 ( + + )

我的 ideavim 配置在这里 gist.github.com/ZeekoZhu/dadbcb4264dbbe40cbbf5ad8ee1c5480  显示 Gist 代码 #file-ideavim

哦哦,我也是用 IDE, 只是装 vim 插件。因为不需要 vim 里太多功能,vim 只是个指法。

用的多快捷键还是比较有用的.

你应该听说过脚踏了吧,现在我觉得那真的不是开玩笑了。

ideavim ,各种 leader + x 绑定给 ide 的各种 action ,非常舒适,顺便解决了 mac 和 win 下键位不一致的问题
不一定提高了开发效率,主要是提高打字效率,感觉更加快乐,以及装逼

写代码不应该多半时间用来思考么?良好的架构和封装才是提高开发效率的关键吧

我更喜欢 Emacs 的 interactively do 。

自己改一下快捷键就记住了

要不整个 USB 脚踏板试试

祝贺你发明了 vim

长期来看提高开发效率的最有效的途径是提高代码的可读性。因为一个软件系统最大的成本往往不是一开始的开发成本,而是后续很多年的更新和维护成本。一开始人们会轻视软件的维护成本,甚至看不到。

鼠标效率低,改用触摸板就好了,要用电脑自带的触摸板。外置独立的触摸板没用,因为和鼠标一样离键盘太远,不能单手同时操作键盘和触摸板

把机械的、高频的操作快捷键化、命令行脚本化。然后学习下如何扩展自己所用的编辑器 /IDE ,现在流行的 JetBrain/VSCode/Emacs/Vim 都是支持

重发:

还是需要 vim 好,使用不同 ide 时,我只有装上 vim 插件 和 我平时用的主题色 感觉编辑这块都差不多了,效率不会降低

ps ,v2ex 的 ctrl + 回车竟然是直接回复。。

分享下个人的一些做法和观点:

  1. 把机械的、高频的操作快捷键化、命令行脚本化。过于复杂、多变的需求如果没时间就没必要做了,当练手可以。
  2. 谨慎脚本化生产环境的操作!举例:你可以实现个一键部署测试环境的脚本,但是生产环境要特别谨慎。生产环境的脚本需要更系统、测试更完备。
  3. 学习下如何扩展自己所用的编辑器 /IDE 。未必需要熟练对应编辑器的插件开发,很多时候可以简单的转化成调用外部命令即可。
  4. 个人 emacs/vim 的快捷键都用,其实还挺香。emacs 的 ctrl+a/e/n/p/f/b alt+f/b 在命令行、系统各类输入框中基本都支持( osx )。之前 vim 光标要切换到上下单词,上下行等很小的操作也需要切换模式,不然就要按上下左右。吸纳 emacs 的基本快捷键后,感觉爽了很多。
  5. 不要太折腾,优化工具需要循序渐进。编码更重要的还是脑力活,很多情况下思考才是效率的瓶颈。只追求字符输入快的职业,感觉像是刷单手,狗头。

那个叫速度,不叫效率。

用鼠标不影响效率的,因为操作很直观,不需要动脑,UI 的设计合理性比堆快捷键更难,好软件的 UI 层次是有讲究的

那你发现的有点偏差
我使用 jetbrains 公司的 ide 如 idea,webstorm 等,快捷键基本一样的,我觉得不需要改动快捷键配置就满足自己的需求了
也不需要一大堆命令行工具来提升效率
我发现提升效率很大的是 ide 插件,比如一键生成 mybatis 的实体等各种类,json 反序列化成实体等常用的操作简化
还有 1 个是自己写模板引擎代码,将一些常用的可一键生成,比如一键生成前后端简单的增删改查界面和接口,自己只需要简单修改后就可以用

个人感觉开发效率的高低在于产品有没有频繁变更需求,而不是写代码的速度。。。

我也不敢苟同,毕竟做开发,写代码的时间也就占 1/4 左右,所以提升效率的点应该是将重复劳动变为自动化的

每个按键和自定义脚本绑定,这就是自动化流程啊。

现在开发语言和体系太多,不同工具,不同 IDE 切换后,用起来有明显分裂感,很难统一。

而我提到的模式切换,本质就是个粘合剂,最终形成良好的学习循环曲线。而不是边学边忘。

这个提效的思路没有问题,但是需要考虑投入产出比的问题,在代码时间不是很长的情况下,学习成本和收益是否对等。

木桶原理。

脑子需要经常等待手 => 提升手的效率有助于提升开发效率
手需要经常等待脑子 => 提升脑的效率有助于提升开发效率


多说一些,
编程从输入输出的角度来说是一个手-屏-眼的模型。
鼠标降低了手的效率,但大大提高了眼跟脑的舒适感。比如翻页,键盘按键离散化了屏幕,这对我们眼和脑的信息处理能力提出了更高的要求。

现在用惯了触摸板,一般右手的大拇指放在触摸板上,也很方便

提高效率最有作用的是拿只笔把想到的东西写下来画出来再归类总结优化,最后花一点时间写代码
边写边想没有大纲走的弯路多所以需要写的代码才多,这也是为什么写作为写书要有大纲的原因

所谓提升开发效率关键应该在于解决你最耗时的阻塞事件 而不是把日常的 2 秒变成 1 秒

开发效率 = 程序生命周期内影响力 / 开发时间

缩短开发时间很难,最多缩短到 50%或 30%。

提高程序的影响力要简单的多,停下来,思考一下这个程序值不值得写,往往就能有不错的回报。

21 楼的 “那个叫速度,不叫效率。” 是正解。

编程里很重要的一点,就是要尽可能消除 side effect 。

你面对一大堆 linux 命令,最好的办法不是拿个本子,全部记下来,而是写个快捷 GUI 辅助图形面板来驱动命令,把外部知识逐渐转换为只属于你自己的内部知识。这样才能降低大脑负担和工作时的 side effect ,专心在眼前的写代码上。

人不要只会用工具,要想着不断改进和创造新的。这就是我说的效率。

在我看来可能不太一样,我个人是倾向于使用鼠标的。
一是,我不会在同一个文件中长时间停留写代码,有时候需要来回翻动或者来回写。
二是,鼠标对于精准跳转、精准定位很便捷。触摸板虽好,不用离开键盘,但是我不习惯动手指和手腕。
三是,快捷键太多了,有些频率不是非常高的容易记混。而且我不太会盲打,效率对我来说不是很高。
四是,写代码并不是持续性很长的,经常要写写停停,有时候需要上下翻动,或者使用鼠标高亮某些地方来帮助思考。
五是,我自己使用鼠标再回键盘并不会割裂思考。
以上仅代表个人。

我不用鼠标的原因纯粹是因为鼠标距离键盘有一定的距离,而我比较懒。。。