我发现所谓提升开发效率,就是写一大堆命令行工具,然后用快捷键和自己的 IDE 绑定到一起 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
tool2d
V2EX    程序员

我发现所谓提升开发效率,就是写一大堆命令行工具,然后用快捷键和自己的 IDE 绑定到一起

  •  
  •   tool2d 2023-01-04 18:25:21 +08:00 5167 次点击
    这是一个创建于 1016 天前的主题,其中的信息可能已经有所发展或是发生改变。
    很多编程 IDE 里并没有模式区分,只能一股脑输入文字。这就导致大部分快捷键操作,都需要依靠 Ctrl 和 Alt 的组合,或者用鼠标才能达成,但是用太多的鼠标,明显分散注意力,降低了开发效率。

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

    我个人把`绑定到了 leader key, 用来切换各种模式。硬核码农只需要 IDE 嵌入一个迷你 inputbox 来驱动命令,就完全足够了。
    38 条回复    2023-01-07 13:23:10 +08:00
    DingJZ
        1
    DingJZ  
       2023-01-04 18:41:14 +08:00   2
    快捷键不够用,然后也记不住,个人也感觉 input 是最有效的,vscode 除了必要的几个快捷键,很多功能基本都靠 cmd+shift+p ,mac 上全用帽子,不够用的就写或者找插件
    以前也觉得用鼠标浪费时间,但是后来换触摸板之后这个感觉消失了,可能是自己习惯了
    frankyzf
        2
    frankyzf  
       2023-01-04 19:55:20 +08:00
    感觉和 vim 类似?
    tool2d
        3
    tool2d  
    OP
       2023-01-04 20:19:20 +08:00 via Android
    @frankyzf 对于现代化开发,ide 很重要,是管理项目最佳方式。

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

    加个模式切换就能改变现状,但是官方就是不加,只能自己动手了。
    zxCoder
        4
    zxCoder  
       2023-01-04 20:30:41 +08:00   4
    真有那么多代码写嘛
    GiantHard
        5
    GiantHard  
       2023-01-04 21:13:31 +08:00 via Android   2
    我的 IDE 基本上就是按照楼主说的这种方式配置的,在浏览、编辑代码的时候,手指基本不会脱离键盘的 home row ,很多操作变成了肌肉记忆。

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

    我的 ideavim 配置在这里 https://gist.github.com/ZeekoZhu/dadbcb4264dbbe40cbbf5ad8ee1c5480#file-ideavim
    frankyzf
        6
    frankyzf  
       2023-01-04 23:20:26 +08:00
    @tool2d 哦哦,我也是用 IDE, 只是装 vim 插件。因为不需要 vim 里太多功能,vim 只是个指法。
    Jooooooooo
        7
    Jooooooooo  
       2023-01-04 23:25:05 +08:00
    用的多快捷键还是比较有用的.
    loading
        8
    loading  
       2023-01-04 23:31:13 +08:00 via Android   1
    你应该听说过脚踏了吧,现在我觉得那真的不是开玩笑了。
    chendy
        9
    chendy  
       2023-01-04 23:44:56 +08:00   1
    ideavim ,各种 leader + x 绑定给 ide 的各种 action ,非常舒适,顺便解决了 mac 和 win 下键位不一致的问题
    不一定提高了开发效率,主要是提高打字效率,感觉更加快乐,以及装逼
    wangritian
        10
    wangritian  
       2023-01-04 23:49:45 +08:00
    写代码不应该多半时间用来思考么?良好的架构和封装才是提高开发效率的关键吧
    L4Linux
        11
    L4Linux  
       2023-01-05 00:10:10 +08:00
    我更喜欢 Emacs 的 interactively do 。
    lysS
        12
    lysS  
       2023-01-05 00:44:18 +08:00
    @DingJZ 自己改一下快捷键就记住了
    Puteulanus
        13
    Puteulanus  
       2023-01-05 01:56:28 +08:00
    要不整个 USB 脚踏板试试
    dayeye2006199
        14
    dayeye2006199  
       2023-01-05 03:04:21 +08:00   1
    祝贺你发明了 vim
    gowl
        15
    gowl  
       2023-01-05 04:26:18 +08:00
    长期来看提高开发效率的最有效的途径是提高代码的可读性。因为一个软件系统最大的成本往往不是一开始的开发成本,而是后续很多年的更新和维护成本。一开始人们会轻视软件的维护成本,甚至看不到。
    duke807
        16
    duke807  
       2023-01-05 08:58:21 +08:00 via Android
    鼠标效率低,改用触摸板就好了,要用电脑自带的触摸板。外置独立的触摸板没用,因为和鼠标一样离键盘太远,不能单手同时操作键盘和触摸板
    justdoit123
        17
    justdoit123  
       2023-01-05 10:05:43 +08:00
    把机械的、高频的操作快捷键化、命令行脚本化。然后学习下如何扩展自己所用的编辑器 /IDE ,现在流行的 JetBrain/VSCode/Emacs/Vim 都是支持
    justdoit123
        18
    justdoit123  
       2023-01-05 10:05:57 +08:00
    重发:
    weixiangzhe
        19
    weixiangzhe  
       2023-01-05 10:16:49 +08:00
    还是需要 vim 好,使用不同 ide 时,我只有装上 vim 插件 和 我平时用的主题色 感觉编辑这块都差不多了,效率不会降低
    justdoit123
        20
    justdoit123  
       2023-01-05 10:22:56 +08:00   1
    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. 不要太折腾,优化工具需要循序渐进。编码更重要的还是脑力活,很多情况下思考才是效率的瓶颈。只追求字符输入快的职业,感觉像是刷单手,狗头。
    qiumaoyuan
        21
    qiumaoyuan  
       2023-01-05 10:27:32 +08:00
    那个叫速度,不叫效率。
    murmur
        22
    murmur  
       2023-01-05 10:31:01 +08:00
    用鼠标不影响效率的,因为操作很直观,不需要动脑,UI 的设计合理性比堆快捷键更难,好软件的 UI 层次是有讲究的
    james2013
        23
    james2013  
       2023-01-05 10:31:14 +08:00
    那你发现的有点偏差
    我使用 jetbrains 公司的 ide 如 idea,webstorm 等,快捷键基本一样的,我觉得不需要改动快捷键配置就满足自己的需求了
    也不需要一大堆命令行工具来提升效率
    我发现提升效率很大的是 ide 插件,比如一键生成 mybatis 的实体等各种类,json 反序列化成实体等常用的操作简化
    还有 1 个是自己写模板引擎代码,将一些常用的可一键生成,比如一键生成前后端简单的增删改查界面和接口,自己只需要简单修改后就可以用
    RainCats
        24
    RainCats  
       2023-01-05 10:33:17 +08:00
    个人感觉开发效率的高低在于产品有没有频繁变更需求,而不是写代码的速度。。。
    tianmalj0613
        25
    tianmalj0613  
       2023-01-05 10:39:40 +08:00   1
    我也不敢苟同,毕竟做开发,写代码的时间也就占 1/4 左右,所以提升效率的点应该是将重复劳动变为自动化的
    tool2d
        26
    tool2d  
    OP
       2023-01-05 10:48:38 +08:00
    @tianmalj0613 每个按键和自定义脚本绑定,这就是自动化流程啊。

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

    而我提到的模式切换,本质就是个粘合剂,最终形成良好的学习循环曲线。而不是边学边忘。
    tianmalj0613
        27
    tianmalj0613  
       2023-01-05 11:17:38 +08:00
    @tool2d 这个提效的思路没有问题,但是需要考虑投入产出比的问题,在代码时间不是很长的情况下,学习成本和收益是否对等。
    UIXX
        28
    UIXX  
       2023-01-05 11:22:45 +08:00
    木桶原理。

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

    -----------------------------

    多说一些,
    编程从输入输出的角度来说是一个手-屏-眼的模型。
    鼠标降低了手的效率,但大大提高了眼跟脑的舒适感。比如翻页,键盘按键离散化了屏幕,这对我们眼和脑的信息处理能力提出了更高的要求。
    Deplay
        29
    Deplay  
       2023-01-05 11:25:38 +08:00
    现在用惯了触摸板,一般右手的大拇指放在触摸板上,也很方便
    dqzcwxb
        30
    dqzcwxb  
       2023-01-05 11:29:46 +08:00
    提高效率最有作用的是拿只笔把想到的东西写下来画出来再归类总结优化,最后花一点时间写代码
    边写边想没有大纲走的弯路多所以需要写的代码才多,这也是为什么写作为写书要有大纲的原因
    8355
        31
    8355  
       2023-01-05 12:06:35 +08:00
    所谓提升开发效率关键应该在于解决你最耗时的阻塞事件 而不是把日常的 2 秒变成 1 秒
    sdjl
        32
    sdjl  
       2023-01-05 13:52:55 +08:00
    开发效率 = 程序生命周期内影响力 / 开发时间

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

    提高程序的影响力要简单的多,停下来,思考一下这个程序值不值得写,往往就能有不错的回报。
    sdjl
        33
    sdjl  
       2023-01-05 13:54:42 +08:00
    21 楼的 “那个叫速度,不叫效率。” 是正解。
    tool2d
        34
    tool2d  
    OP
       2023-01-05 14:13:04 +08:00
    @sdjl 编程里很重要的一点,就是要尽可能消除 side effect 。

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

    人不要只会用工具,要想着不断改进和创造新的。这就是我说的效率。
    sleepyfevniv
        35
    sleepyfevniv  
       2023-01-05 14:21:52 +08:00
    在我看来可能不太一样,我个人是倾向于使用鼠标的。
    一是,我不会在同一个文件中长时间停留写代码,有时候需要来回翻动或者来回写。
    二是,鼠标对于精准跳转、精准定位很便捷。触摸板虽好,不用离开键盘,但是我不习惯动手指和手腕。
    三是,快捷键太多了,有些频率不是非常高的容易记混。而且我不太会盲打,效率对我来说不是很高。
    四是,写代码并不是持续性很长的,经常要写写停停,有时候需要上下翻动,或者使用鼠标高亮某些地方来帮助思考。
    五是,我自己使用鼠标再回键盘并不会割裂思考。
    以上仅代表个人。
    Docky
        36
    Docky  
       2023-01-05 17:02:43 +08:00   1
    我不用鼠标的原因纯粹是因为鼠标距离键盘有一定的距离,而我比较懒。。。
    DingJZ
        37
    DingJZ  
       2023-01-06 10:15:40 +08:00
    @lysS #12 架不住多,自己改改就不够用了,常用的就那几个键,要不就重复了,每次设置快捷键都很纠结,感觉还是 input 比较自然,有个关键字就出来了,jb 家的双击 shift 搜一切感觉很舒服
    sdjl
        38
    sdjl  
       2023-01-07 13:23:10 +08:00
    @tool2d 我也搞了一堆 vim 的配置,尽量用简单的命令解决重复问题。但我不是为了提高效率,我是为了让我写代码的时候感觉舒适。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3136 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 12:04 PVG 20:04 LAX 05:04 JFK 08:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86