【公众号回复 “1024”,免费领取30本经典编程书籍】

我们常常称经验丰富的程序员为老司机,如果你不是老司机,今天这个项目可以助你成为司机。

这个项目是「Vim Clutch」,翻译成中文是Vim 离合器。

Vim 离合器是一个提高 Vim 编辑器文本编辑速度的脚踏板,当这个脚踏板被按压时,Vim 会进入插入模式,相当于鼠标输入 <i>,当释放脚踏板时,Vim 就回到了正常模式,相当于鼠标输入 <Esc>。

作者记录下了他的制作过程:

  1. 从中国买了两个 USB 脚踏板以及 PC 传感器。

  2. 脚踏板可以通过 「footswitch」命令行界面进行编程,使其能正常工作。

footswitch」项目地址:https://github.com/rgerganov/footswitch

  1. 不幸的是,只有脚踏板的按下事件是可以编程的,但我们需要的是松开脚踏板时触发<Esc>。我给 PC 传感器厂家发邮件,想跟他们合作,但我拿到脚踏板的当天就想让它工作,所以我花了一个小时破解了它。

  2. 我完成了一个脚踏板触发<i>,另一个脚踏板触发<Esc>。

  3. 分开两个脚踏板。

  1. 用电子胶带将两根牙签固定在塑料刀片上,当脚踏板处于按压状态时,塑料刀片在红外线传感器之间移动。

  1. 将两块传感器板放置在一个脚踏板外壳中,当踩下踏板时,牙签先穿过 <Esc> 传感器,然后塑料刀片进入 <i> 传感器。当踏板松开时,牙签将再次穿过 <Esc> 传感器。

最终的成品如下:

这样敲代码,除了没有推背感,操作感和开车没啥区别。

开源项目地址:https://github.com/alevchuk/vim-clutch

开源项目作者:Aleksandr Levchuk

推荐阅读:

用动画的方式呈现解 LeetCode 的思路

算法可视化,轻松你我他


今天的推荐不知道大家喜欢吗?如果你喜欢,请在文章底部留言和点赞,以表示对我的支持,你们的留言和点赞是我持续更新的动力哦!

章鱼猫在此感谢大家的关注和支持。喜欢我,就赶紧关注我,给我点赞吧!

「GitHub精选」,每晚10:24准时为您推送

想知道我面板上写的是啥吗?请点击放大图片

你难道不好奇吗?

Vim 离合器,面向脚踏板编程相关推荐

  1. python aop编程_学习笔记: AOP面向切面编程和C#多种实现

    AOP:面向切面编程   编程思想 OOP:一切皆对象,对象交互组成功能,功能叠加组成模块,模块叠加组成系统 类--砖头     系统--房子 类--细胞     系统--人 面向对象是非常适合做大型 ...

  2. 【Spring】面向切面编程AOP

    AOP基础 什么是AOP [废话解释]在软件业,AOP全称Aspect Oriented Programming 即:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AO ...

  3. 【spring】初识aop(面向切面编程) 使用jdk动态代理

    BankServiceIImple.java 代码实现: package com.zzxtit.aop;import java.math.BigDecimal;public interface Ban ...

  4. 前端思想实现:面向UI编程_____前端框架设计开发

    引子,我去小说看多了,写博客竟然写引子了!!!不过,没引子不知道怎么写了.言归正传吧,前端这个职业,也就这几年刚刚火起来的职业,以前那个混乱的年代,前端要么是UI设计师代劳解决问题,要么就是后端程序员 ...

  5. 频频曝出程序员被抓,我们该如何避免面向监狱编程?

    过去几年,频频有程序员被抓的消息刷爆技术圈,无论是技术高手.公司合伙人还是普通程序员,甚至整个科技公司,都有因为违法被抓的案例. 案例 比如: 1.著名的Nignx之父Igor Sysoev的前东家R ...

  6. Spring 面向切面编程

    AOP,也就是面向方面编程或者说面向面编程,是一种很重要的思想.在企业级系统中经常需要打印日志.事务管理这样针对某一方面的需求,但是传统的面向对象编程无法很好的满足这些需求.因此催生了面向切面编程这样 ...

  7. React学习笔记2:React面向组件编程

    面向组件编程 概述 组件名必须首字母大写 虚拟DOM元素只能有一个根元素 虚拟DOM元素必须有结束标签 渲染类组件标签的基本流程 React内部会创建组件实例对象 调用render()得到虚拟DOM, ...

  8. Spring核心AOP(面向切面编程)

    AOP(面向切面编程) 原理 相关术语 系统日志增强 异常抛出增强 最终增强 环绕增强 使用注解实现AOP AspectJ 转载于:https://www.cnblogs.com/xhddbky/p/ ...

  9. 大型Web前端架构设计:面向抽象编程入门

    面向抽象编程,是构建一个大型系统非常重要的参考原则. 但对于许多前端同学来说,对面向抽象编程的理解说不上很深刻.大部分同学的习惯是 拿到需求单和设计稿之后就开始编写UI界面,UI里哪个按钮需要调哪些方 ...

最新文章

  1. .NET项目开发的几个非常重要的项目设置
  2. ubuntu 16.04更新软件源
  3. 爬虫苦训第一天,我的第一个爬虫!!!
  4. java多线程编程一之java线程的原理
  5. NSTimer 进阶使用总结与注意事项
  6. 一个YII社区学习网站
  7. python 文件及文件夹操作
  8. 微信小程序开发入门篇
  9. 【IT运维】自动化运维是什么意思?有什么作用?
  10. cmd跑绿色代码_cmd装逼代码-cmd命令,装逼
  11. 后台管理系统--毕业设计02
  12. Lattice Diamond软件使用
  13. 华硕t100ha刷linux,华硕T100一键重装win7系统教程
  14. 开源OA协同办公系统:O2OA搭建企业微信办公首页说明
  15. Visual Studio “无可用源“ 问题
  16. MinGW到底是个什么ghost
  17. 今天烧了3个菜之一,炖豆腐
  18. 智联卓聘 卓聘聊聊(IM)开发实践
  19. 快递分拣的计算机技术是那些,RFID物流分拣系统方案
  20. 利用frp 进行远程桌面控制

热门文章

  1. 【Electron Playground 系列】自定义协议篇
  2. 鸿蒙os测试版将发布,鸿蒙OS 2.0手机测试版12月将如约发布
  3. 八滩中学2021高考成绩查询,盐城十大名校高考成绩公布,滨海八滩中学应届本科上线525人...
  4. python爬取和平精英皮肤_20行Python代码爬取王者荣耀全英雄皮肤
  5. Arcgis地理操作
  6. 初一到十五的过年习俗,你知道多少
  7. SpringMVC上传文件出现400 Bad Request错误
  8. 从u到v还是从v到u?
  9. 妙味,结构化模块化 整站开发my100du
  10. 高速缓存(L1、L2、L3三级缓存)