敲代码的另一种方式? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Lanayaaa
V2EX    程序员

敲代码的另一种方式?

  •  2
     
  •   Lanayaaa 2019-09-22 14:49:22 +08:00 10644 次点击
    这是一个创建于 2261 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为什么敲代码一定要用两只手。敲代码又不是码字。按顺序码就行了。

    敲代码的过程中,经常会有停顿,来回跳转,选择代码块(复制 /剪切),这些事情鼠标可以很好的处理。

    那么:我们可不可以左手放在键盘上,右手握着鼠标。需要跳转 /选代码块时用鼠标,然后码代码用左手呢?

    感觉效率不比 vim 差啊。甚至更快。

    tip: 不考虑纯 terminal 环境

    69 条回复    2019-09-27 22:36:59 +08:00
    jinhan13789991
        1
    jinhan13789991  
       2019-09-22 15:04:22 +08:00 via Android   2
    事情的出现肯定有它的原因,你可以想一下,如果你说的这种特别方便高效,为啥没人用呢。
    learningman
        2
    learningman  
       2019-09-22 15:04:56 +08:00 via Android   1
    何必走极端,必要的时候我的右手也可以挪开呀,干嘛要一直放在鼠标上?而且在更多场景下,我的右手会放在上下左右键上。
    Buges
        3
    Buges  
       2019-09-22 15:07:51 +08:00 via Android
    你一只手敲段代码试试就知道了。

    敲代码就是两手比较快,其他操作就是要用鼠标,这样需要一只手从鼠标和键盘上切换,效率就会很低。

    而这也是 vim 等工具脱离鼠标的意义。
    junnplus
        4
    junnplus  
       2019-09-22 15:10:56 +08:00
    你可以自己试试呀,等哪天这种方式的效率赶上双手敲代码再来说
    orzorzorzorz
        5
    orzorzorzorz  
       2019-09-22 15:11:39 +08:00
    我一只手记不住键位
    azuginnen
        6
    azuginnen  
       2019-09-22 15:12:37 +08:00
    你搜下这个老哥 Bisqwit 芬兰的,看人是怎么敲代码的。

    他都不用补全的,一个一个敲。
    Samuelcc
        7
    Samuelcc  
       2019-09-22 15:15:37 +08:00 via Android
    作为一个 vimer, 觉得鼠标加键盘不会比 vim 快
    xmoiduts
        8
    xmoiduts  
       2019-09-22 15:23:50 +08:00 via Android
    人的神经有延迟啊,用鼠标大部分时间都花在启停定位光标上了,用键盘可以把人手操作 buffer 掉,不用人脑中断跳出键盘逻辑。
    Yvette
        9
    Yvette  
       2019-09-22 16:28:16 +08:00
    如果没有人在你打字的时候把你的双手都按在键盘上不准你碰鼠标,那为什么不可以?从你做起吧,左手全键盘走起
    chendy
        10
    chendy  
       2019-09-22 16:31:19 +08:00
    问题是怎么单手打字…
    antscript
        11
    antscript  
       2019-09-22 16:35:35 +08:00 via iPhone
    跳转 /选代码块 也有快捷键可用
    cmdOptionKana
        12
    cmdOptionKana  
       2019-09-22 16:39:30 +08:00
    给楼主推荐一个编辑器 Acme, Go 语言之父发明的,其操作非常依赖鼠标。
    poplar50
        13
    poplar50  
       2019-09-22 16:52:26 +08:00 via Android
    想啥呢 “感觉效率不比 vim 差”。。如果你左手码代码效率堪比你双手 vim,我无话可说。vim 这种编辑器的出现本身就有想要 mouse free 的原因。
    ClericPy
        14
    ClericPy  
       2019-09-22 16:57:12 +08:00
    要么 vi, 要么鼠标手势

    一只手敲代码, 当年的指法练习不允许啊

    而且快捷键用习惯了, 为啥要用鼠标?
    lneoi
        15
    lneoi  
       2019-09-22 17:04:04 +08:00
    目前的键盘不允许一只手快速输入吧,而且鼠标移动与击键次数比,肯定一只手会累很多
    twoyuan
        16
    twoyuan  
       2019-09-22 17:05:38 +08:00
    - 敲代码又不是码字

    杠精的我:不,敲代码就是码字

    不是杠精的我:敲代码确实有些时候是用码字代替一些事的,比如重复敲自己定义过的变量、函数名(虽然用自动补全能节省很多击键)。不过首先于当前交互方式,用鼠标不见得比键盘快多少,因为很多定位操作在可选择元素多的时候仍然要键盘“码字”才能更精准的定位。像科幻片里经常出现的,人站在很多个由全息影像呈现的“显示屏”前,用手很多手势(旋转、点击、拖动)也许是这个方向的一种探索。
    rocbomb
        17
    rocbomb  
       2019-09-22 17:25:20 +08:00
    问题是 大部分时间在思考,在 Debug...
    wisetc
        18
    wisetc  
       2019-09-22 17:39:40 +08:00 via iPhone
    怎么我用右手敲代码,左手忖头。楼上需要左手敲代码的人可以用手机,那样移动幅度比较小。
    szzhiyang
        19
    szzhiyang  
       2019-09-22 17:43:29 +08:00   1
    最好的键鼠混用方案是 Thinkpad 的小红点。
    MIMEIK
        20
    MIMEIK  
       2019-09-22 17:55:32 +08:00   1
    要是脚能用鼠标就好了,DIY 个鞋式鼠标。
    影响敲代码效率的不是打字的速度而是思考的时间和熟练度吧
    msaionyc
        21
    msaionyc  
       2019-09-22 17:56:16 +08:00
    不要为了创新而创新,你这就好像别人说吃饭用碗筷,你非要说,可以不用碗啊,直接用筷子在锅里吃,这样还省了洗碗的时间。

    “感觉效率不比 vim 差啊。甚至更快。”这种话说出来很傻
    如果你觉得一手鼠标一手键盘比双手打字更快,你可以录个视频验证一下,视频地址发出来
    keyv
        22
    keyv  
       2019-09-22 18:03:15 +08:00 via iPhone
    这样左手移动幅度太大,太累,比如删除,换行或者输冒号和点的时候。。。
    comwrg
        23
    comwrg  
       2019-09-22 18:22:43 +08:00
    敲代码根本不需要啥效率 又不是打字员 规定一定要打多少字 重要的是 [敲代码] 的 [体验]

    很多人喜欢 Vim 不单单因为效率高(次要原因) 更主要的因为用 Vim [敲代码] [体验] 好(主要原因)
    monson
        24
    monson  
       2019-09-22 18:32:26 +08:00   2
    我真的就是习惯只用左手打字,手指像弹钢琴一样,所有同事都惊讶我有这个技能。。

    原因有点奇葩,初中刚接触电脑时,在玩一款网游,可以只用鼠标移动就能完全操纵,键盘只用于和工会的人打字聊天(那时还没有语音)。玩了两三年,就习惯单手打字了;甚至我还一直不会双手打字(拼音),因为单手和双手的感觉是不一样的。

    近几年换了 MacBook,用上触摸板、不用鼠标了,右手放着键盘附近,才慢慢学会双手打字。不过偶尔用手撑着桌子或者拿着手机看时,还是会单手打字,就像现在。

    PS1: 输入法词序固定很重要,因为都是记忆性反射。
    PS2: 机械键盘比笔记本键盘更好,能像钢琴按键一样有更多手感反馈。
    PS3: 也许因此左手很灵活,懒的时候甚至连触摸板都是只用左手,右手没事干也不动。
    PS4: 我是右撇子,但右手单手打字是不会滴。
    felixlong
        25
    felixlong  
       2019-09-22 19:17:27 +08:00
    这样更快说明 lz 大部分时间在 Copy/Paste 而不是敲代码。
    AlisaDestiny
        26
    AlisaDestiny  
       2019-09-22 19:18:44 +08:00
    键盘和鼠标的操作频率不在一个量级上,如果个分配一只手,那肯定是左手忙不过来,右手还有空给你嘴喂瓜子。你应该能想象这个场景吧。
    cuminflea
        27
    cuminflea  
       2019-09-22 19:39:31 +08:00 via iPad
    我理想中的 setup 是分体式键盘中间放个轨迹球。。。
    youbigding
        28
    youbigding  
       2019-09-22 19:50:39 +08:00
    那还是两只手敲代码,老二来操作鼠标吧。然后鼠标以后改名叫鸟标
    sayano
        29
    sayano  
       2019-09-22 19:58:09 +08:00   1
    想象不到单手打字 除了看 p 站
    xiangyuecn
        30
    xiangyuecn  
       2019-09-22 20:07:43 +08:00
    敲 10010100101001010010 确实单手快多了 (手动狗头
    HankAviator
        31
    HankAviator  
       2019-09-22 20:48:37 +08:00
    想到的替代方案:1.键盘快速定位到常见的位置 2.眼球跟踪+辅助选定。2 看起来还行,反正没人闭着眼睛码代码,定位效率也蛮高 *下一个风口* /狗头
    MaiKuraki
        32
    MaiKuraki  
       2019-09-22 21:16:46 +08:00
    缺一只手,要是有三只手就好了
    reus
        33
    reus  
       2019-09-22 21:21:00 +08:00
    输入就是要两只手

    复制粘贴用 vim 可以很快,你移动鼠标,还要对准开头,还要拖动,还要对准结尾,小心翼翼放开鼠标键的时间,我早就复制粘贴好了

    左右键盘右手鼠标?我又不是打游戏!
    tmf4ck
        34
    tmf4ck  
       2019-09-22 21:33:58 +08:00
    敲什么代码还是来玩游戏吧 我先锋 1~
    exploreXin
        35
    exploreXin  
       2019-09-22 21:42:34 +08:00
    楼主的奇思妙想很有创意,但是我想了下目前为止应该只有周伯通可以这么玩儿左手键盘右手鼠标的招式。为啥?因为这需要人脑双进程的概念。平时工作的时候,仔细观察一下,你双手敲键盘是单进程工作,每当你要用鼠标操作的时候,你在键盘上手是没有动作的,鼠标操作完然后双手回到键盘才会开始继续键盘上的工作。而键盘鼠标同时操作是双进程,需要人脑同时控制两个事务的动作。计算机对于多进程是可以轻易驾驭的,单核 cpu 的多进程工作方式是,这个任务干几纳秒,保存进程信息,再切换到那个进程干几纳秒,计算机可以这样做是因为电路里电子传播速度极快,适用于这种工作方式,而人脑生物电的进程切换最短的也得几秒钟,大型的复杂的工作搁置之后就更慢,你需要几分钟的时间才能把保存的复杂任务重载入大脑,你试一下写三秒钟市场分析报告,然后停下来再去设计三秒钟新项目数据库设计,再回来开始写三秒钟的报告,人脑的进程切换是极其耗费时间和资源的,这样干一上午,绝对会累瘫痪。就算简单的左右手双操作,也是很低效的方式。

    所以结论就是,单进程工作方式还玩不利索,就别想学周伯通的左右互搏术了。周大师也不是说玩就可以轻松玩上多进程的,也需要耗费极大的内力和身体控制,否则谁都能练成的话,那还叫什么武林绝学。
    elvodn
        36
    elvodn  
       2019-09-22 21:45:37 +08:00
    Dvorak Left 键盘布局可以挑战一下
    tigerfyj
        37
    tigerfyj  
       2019-09-22 22:08:02 +08:00 via Android   1
    @MaiKuraki 如果人类是三只手,我觉得键盘也一定会被设计成三只手最有效率。然后我们又要感慨四只手就好了。
    MonoLogueChi
        38
    MonoLogueChi  
       2019-09-22 22:12:18 +08:00 via Android
    你可以试一下,反正我一个手很慢。敲代码的时候都是直接敲完一行,或者直接撸完一个函数,然后再停下来。
    还有就是已经熟悉键位了,一个手键位记不住,一边写代码一边想键位,分心二用效率低
    mogami95
        39
    mogami95  
       2019-09-22 22:14:44 +08:00
    我只需要 ctrl+c 和 ctrl+v,别的都用不着!
    a1562619919
        40
    a1562619919  
       2019-09-22 23:37:50 +08:00 via Android
    @felixlong 大部分人都是普通码农,工程问题基本都是已解决的问题,不需要创造,cv 后小幅变动就行了
    qcts33
        41
    qcts33  
       2019-09-22 23:40:28 +08:00
    vim 里面区分模式的设计其实就是为改代码设计的。
    来回跳转,选择代码块这些 vim 里都可以很快捷的进行操作
    与其练一手禅,还不如熟悉熟悉 vim
    20015jjw
        42
    20015jjw  
       2019-09-23 00:44:28 +08:00
    单手键盘了解一下?
    但是其实 vim 有很多准确的操作
    比如鼠标不能调到下一个大写字母 etc
    northisland
        43
    northisland  
       2019-09-23 01:04:06 +08:00
    小红点 + ide
    msg7086
        44
    msg7086  
       2019-09-23 03:02:48 +08:00
    你这种方式适合只用左手敲键盘的人。
    我们这样有两只手,而且两只手都用来敲键盘的人,不适合你这种方式。

    单手打字的人记忆的键位和双手打字完全不同。所以相当于要从头开始重新学习打字,甚至需要用一个新的键盘来实现(因为横向太宽了,单手左右横跳体验很不好)。
    Dvorak 单手键盘就解决了这个问题,你可以试试看。
    https://upload.wikimedia.org/wikipedia/commons/b/b5/KB_Dvorak_Left.svg
    opiviqo
        45
    opiviqo  
       2019-09-23 08:05:02 +08:00 via Android
    代码不在于敲
    appmanagecluster
        46
    appmanagecluster  
       2019-09-23 09:21:05 +08:00
    功能实现就好
    vjnjc
        47
    vjnjc  
       2019-09-23 10:15:45 +08:00
    @azuginnen 刚看了,配乐太好玩了,停不下来
    TheC
        48
    TheC  
       2019-09-23 10:39:47 +08:00
    所以我很多年前买了个 thinkpad 的红点键盘回来,右手再也不用离开键盘区域了
    oyxhm
        49
    oyxhm  
       2019-09-23 10:44:19 +08:00
    神之手
    tz894305532
        50
    tz894305532  
       2019-09-23 11:14:53 +08:00
    鼠标和键盘都放桌面上,键盘鼠标随时切换,就不会有这种困扰了。
    xianxiaobo
        51
    xianxiaobo  
       2019-09-23 12:28:00 +08:00
    敲代码又不是打游戏
    changdy
        52
    changdy  
       2019-09-23 12:53:49 +08:00
    前段时间 我也想过 这个问题
    https://v2ex.com/t/558799
    鼠标和键盘的来回切换的确带来了一定量的效率降低
    imycc
        53
    imycc  
       2019-09-23 12:56:41 +08:00
    你那个是游戏的方式不是打代码的。就算你写的是 py,冒号跟引号总要输入的吧,左手挪过去?

    我倒是觉得比起用鼠标,thinkpad 的键盘或者笔记本的触摸板更有效率,可惜我之前没买小红点键盘,所以一直用的 vim。
    melkor
        54
    melkor  
       2019-09-23 12:58:44 +08:00 via Android
    @monson 老哥是钢琴弹得贼 6 ?一般人手指没这个灵活度、独立性和力量吧
    Godikov
        55
    Godikov  
       2019-09-23 15:28:08 +08:00
    自己觉得舒服,用舌头敲都没人管。
    root8080
        56
    root8080  
       2019-09-23 17:01:13 +08:00
    我试了下 发现居然真的可以单手打字 而且速度不慢 可是我已经快两年没用过鼠标了
    sambawy
        57
    sambawy  
       2019-09-23 17:04:01 +08:00
    一个手鼠标,另一个手熟练的 Ctrl+C 和 Ctrl+V,完事
    devcat
        58
    devcat  
       2019-09-23 18:05:36 +08:00
    一个手鼠标,另一个手熟练的 Ctrl+C 和 Ctrl+V,完事
    bgm004
        59
    bgm004  
       2019-09-23 18:45:42 +08:00 via Android
    你这还不如 tnc 呢
    roryzh
        60
    roryzh  
       2019-09-23 18:54:13 +08:00
    @xiangyuecn 1 在键盘左边 0 在键盘右边,不如双手不如双手
    xiangyuecn
        61
    xiangyuecn  
       2019-09-23 19:09:31 +08:00
    @roryzh 小键盘 拇指按 0 食指按 1 那列 中指按 2 那列 无名指按 3 那列 小指按+-回车 一个手敲的飞起
    BiteTheDust
        62
    BiteTheDust  
       2019-09-23 20:45:32 +08:00
    我试了一下 输入 printf
    我先手往右移到 p 然后再往回移到 r 然后觉得太慢了想删了 又移了老远到退格
    monson
        63
    monson  
       2019-09-24 00:23:04 +08:00
    @melkor 完全不会钢琴,不过现在左手手指灵活度确实跟右手差不多,但左手手臂力量还是明显弱于右手的。
    monson
        64
    monson  
       2019-09-24 00:30:28 +08:00
    @BiteTheDust 应该是你们不习惯,所以指法不对。当食指按 p 时,尾指已经可以直接放 r 上了,手掌几乎没移动。实际上我只用移动 3 次手掌,p(食)r(尾)i(中) -- n(食)t(中)f(无名) -- 退格(中)。
    baobao1270
        65
    baobao1270  
       2019-09-24 00:35:53 +08:00
    这个时候触摸板的作用就体现出来了
    我好像见过空格键做成一根圆柱体,可以左右滑动、上下滚动的键盘,来操控鼠标的
    secondwtq
        66
    secondwtq  
       2019-09-24 01:25:24 +08:00 via iPad
    “键盘+定位设备”这种配器模式有它适用的地方,只不过不是”敲”代码。
    普通用户一般会认为有 GUI 的地方就离不了某种定位设备,可能是鼠标、触摸板、触摸,或者手写笔。
    程序员知道 Vim,知道 text-based interface,快捷键玩的也溜,但是程序员的问题就在于一般只跟代码和文档打交道,所以楼主尽管有跳出圈子的想法,但是也局限在“敲代码”的边界里面 ..
    但是同时不少程序员也玩游戏,玩摄影,做视频,绘画,在进行这些活动的时候,定位设备依然是不可或缺的。可惜的是,这四种活动中你的操作基本是完全随机的 ... 只有做视频跟编程沾边比较多

    楼主可以了解下 Visual Programming,在这种形式里面,开发者主要做的不是写代码,而是拼接已有的逻辑和模块。这种方法本质上依赖于 GUI,并且也很大依赖于定位设备。所以之前那些编辑器什么的不管用,一个基本的“IDE”是最低要求。并且如果要做的好用,需要你发挥一点交互功力(再不济也得发挥点抄袭功力)来真正提高这个 IDE 的效率。

    举个例子:写一个函数,你得先把签名定下来,参数名和类型写上去,写到一半发现不对要改签名,那你得把光标挪回那行改(如果你写的是 C/C++ 这种那恭喜你要改两次 ...),哪怕你只是做一个 prototype,而在图形化的环境里面,我就只要把“Input Node”拖进来,然后连到需要用这个参数的地方就行了。

    这种模式有什么实际应用?我也不是十分清楚,但是如果曾经在基础设施稍微好一点的公司干过的话,应该会见过类似“配置流程”之类的东西,有一点相似之处。给几个 hint:
    * 如果目标使用环境本身就属于无法离开定位设备的情况,这种模式有天然的优势( Vim 等文本操作模式的全键盘操作无法实现)。
    * 图形化的界面对非程序员(包括且不限于项目中的其他角色以及终端用户)更友好。
    * 对没键盘 /键盘残废的触屏设备更友好。(虽然我个人认为这个还是要结合文本编程,也就是说键盘依然是很必要的)
    dog82
        67
    dog82  
       2019-09-24 09:29:12 +08:00
    你需要精通 vim,手不离开键盘
    tozp
        68
    tozp  
       2019-09-24 09:43:21 +08:00
    应该是大部分时候都只考虑纯 terminal 环境……
    james122333
        69
    james122333  
       2019-09-27 22:36:59 +08:00
    适合这种模式的就一个编辑器 acme 而且还是要整好补全 快速指令的 acme
    鼠标编辑器之神
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3875 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 05:21 PVG 13:21 LAX 21:21 JFK 00:21
    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