生产力系列(篇四):Emacs + HHKB

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生产力系列(篇四):Emacs + HHKB相关的知识,希望对你有一定的参考价值。

参考技术A 我也不知道,为什么我要在买了HHKB之后,才开始起草这篇文章。

HHKB是一款键盘的牌子,或简称为一把键盘。Emacs是一个编辑器,或者简单来说,一个打字软件。我有时以为我不用这块键盘和这个编辑器是没有心思好好打字的,但事实并非如此,比如此刻,我用的是之前在百思买或类似的一个商店因颜值入手的苹果蓝牙键盘,在新学的LibreOffice这款软件中打字。虽然有一点点不习惯,但是坚信着这些代表生产力的工具,绝大部分都是有替代品可用的。而如果没有,就让我们买一个或做一个吧。谁让我们,有手有脚,还有一个脑袋呢。

然后呢。回到正题,简单地介绍一下我眼中的Emacs和HHKB组合。

所以呢,HHKB是一把键盘:

这张图上就是我那一把了,照片是别人用手机帮我顺手拍的,只因我自己拍过好几张都惨不忍睹,反正,键盘是我的。

也不能算是第一把了,毕竟很久以前买过一把Lite,在办公室里用过很长一段时间,再后来换过工作之后最开始不便携带个人物品,于是闲置了,虽然功能完好,颜值也完好。只是心心念念,总一直想着pro的。一直从20年前听说这块键盘开始,就想着pro了,并没有想着要买,毕竟时代发展了,这些旧货,离现代化太远。

真到后来,Hybrid这个版本一出,我才不管它是不是用五号电池,有typec加蓝牙,键位布局加持,静电容,而且它确确实实是HHKB。就是不用,我也得买了。所以究竟这么奇怪,对大多数人而言奇怪,的键盘,它究竟好用还是不好用。我可以说,对大多数人而言,它就是不好用的,仅剩好看。所以,如果不是少数的写文章的人或编码人员,注意是编码人员中也是极少数。那么就是不合适的。

而我,恰恰是离开Emacs编辑器不能好好打字的人。所以这把键盘我很喜欢。

先说句题外话。可能大部分人,都不会特别在乎打字的时候用的是哪种字体吧。因为系统自带的,已经足够好用。可是我是偏爱某种sans字体的,特别是

回到正题,如果你看到的Emacs太难看,可能是它没有定制过吧。这张是我的,初使界面:

再贴一张我觉得挺难看的未定制版本:

我不会告诉你Emacs怎么用,也不能。或许一千个人有一千个用法,最后99%的人会觉得它很难用或者感觉平平。而留下的人,似乎都有各自特殊的用法。

或许我也可给你一个简单的不那么常用的截图:

比如这张tramp mode中一个shell在远程,一个shell在本地,是实实在在我现阶段很常用的工作场景,因为对我而言使用频率很高,所以比较好用。

所以,Emacs是一个熟悉了以后的趁手打字工具,一个很方便很方便的工具。

当然,它可以做的,不只是打字。我谈谈我个人对它的中意之处。

初学者往往花太多时间去定制,只是一个过程,做最基本的几行就够了。但是没有定制是万万不可的。慢慢地,也会写点elisp给它增加功能,我也写过。最基本的定制还是字体,窗口配色,界面长像这些。快捷键也是可定制的。

一个编辑器,必须能全屏。不能有scroll bar,不能有menu bar,必须只有自己的status bar。
它的全屏还可以在多显示器上,每个开一个,当然这种功能对多数人基本没有实际用处。

各种功能,比如进出全屏,比如查找文本,都可以通过命令模式进行。这个不用不知道,一用才知道,几乎扩展无限,而且操作很快。

这个是缺点,不是优点。我把它混在一起了,懒得新开章节组织。我曾经无数次地放弃使用它,最后习惯后就没有再放弃了,就好像摔了好多次后突然学会了骑自行车,当然有点点不同,最可能是我学习的方法不对。不过好在学会了。

你没有看错!这在我眼中,就是它的优点。我曾经用过的,比较快的打字软件,键盘劈里啪啦一通响,打字真的飞快,然而,快到了我的思维没法跟上我的手指,并不完美。而Emacs就是我眼中的完美,用它打字我就比较慢了,慢到刚刚好跟我的思维保持同步。这有多难得,所以这是它的优点。

前面也提过一点。多屏多窗口,多个子窗口,横切竖切,还有server端的attach,无敌方便。更别说它本身可以调一些shell,和目录操作。窗口还能开到网络上别的机器上去。当然有些限制,win下仍是有些限制,但也够用。

这个要借助desktop mode,可以做到多个project载入各自的。

其实也没有什么特别。就是一套很顺手的工具。学习成本有点高,习惯之后就是手指的延伸。有HHKB加持的Emacs,打字时特别舒畅。

提高程序员生产力的10大Emacs插件

 1. Ido-mode

  Ido 或许是对新手最有用的一个插件,Ido 的意思是交互式工作(interactively do)。它取代了大部分的用花哨字符匹配菜单的枯燥提示。好比说,它用列出了当前目录所有文件的列表来取代了常规的打开文件提示符。输入一些字符,Ido 将尝试匹配最合适的文件。它通过可视化让你的操作变得更容易,这也是一个快速遍历所有文件都有相同前缀的文件夹的方法。

  2. Smex

提高程序员生产力的10大Emacs插件

  它不算最著名的一个、但却是一个替代 Ido-mode 的好选择:Smex 可以优雅的替代普通的M-x 提示符,灵感大部分来自于 Ido-mode。它也给调用M-x 后输入的命令带来了同样的交互搜索能力。它简单而有效,是一个为常用操作提升效率的最好方法。

  3. Auto Complete

提高程序员生产力的10大Emacs插件

  知道这个插件的存在之前,我在 Emacs 里面有一半的时间花在敲击 M-/ 来补完单词上。现在,我有一个漂亮的弹出菜单可以为我做自动补全。无须多说,我们都需要它。

  4. YASnippet

提高程序员生产力的10大Emacs插件

  这是真正的程序员必备利器。总有一些代码片段会让我们觉得我们一辈子都在写它。对我来说,就是调试 PHP 时不断输入的 var_dump (…);exit;。经过一段时间一遍又一遍的输入 var_dump (…);exit;,我觉得我可以预先把其做成录制好的、方便用到的代码片段。使用 YASnippets,可以很容易导入代码片段文件或者自己做个。之后,只要按下一个 tab 键,就可以将一个小的关键词扩展成一大段预先写好的代码,然后可以很方便地在里面修改。

  5. Org-mode

提高程序员生产力的10大Emacs插件

  免责声明,我最近才开始使用 Org-mode,但它已经深深的吸引了我。从我看过数以百计的文章来说,Org-mode 可以改变你的生活。它背后的想法很简单:它是一种用普通文本做简单备注的模式,可以很容易地在任务列表和各种数据中转来转去,并进行一些比如按优先级或到期日期的过滤,或设置一个重复日期。然而,虽然思路简单,但你可以做到很多,用各种方法用于各种用途。与其去看一个长长的介绍,我觉得你可以去读读现有教程,有很多视频可以看,自己去体验一下 Org-mode 是多么强大。

  6. Helm

提高程序员生产力的10大Emacs插件

  一些使用者喜欢它,但是其他人没有这么大的使用热情。我是后者的一部分。但在拥有这样一个庞大的追随者的情况下,是不能不提到它的。Helm 旨在完全变换你的 Emacs 使用体验。简单来说,Helm 是一个在 Emacs 中帮助你快速找到一个文件或命令的框架。根据你的输入,它将尝试使用词语自动完成来引导你将大脑的念头变为行动。起初感觉有点奇怪,但对一些人来说,Helm 本身就是一个信仰。虽然我不是 Helm 的粉丝,我欣赏 helm-occur 这一个伟大的工具可以在一个大文档搜索字符串并且在一个单独的缓冲区显示所有匹配结果,以便很容易在它们之间跳转。

  7. ace-jump-mode

提高程序员生产力的10大Emacs插件

  这是另一个有一大群追随者的插件,我正在试图成为 ace-jump-mode 的粉丝。掌握这个插件,你会体验到超越鼠标感受。简单描述一下,通过你选择的快捷方式触发 ace-jump-mode 后,你会被提示输入字符。输入一个字符,所有以该字符开头的单词中的那个字符就会替换成一个唯一字符并被高亮。输入一个屏幕上的高亮字符,你的光标会直接跳转到高亮显示的那个词。我不得不承认,这让我使用它时有点反应不过来,但是,一旦你掌握它,它将显著提升你在一个文档里的移动速度。(LCTT 译注:用文字描述比较困难,如截图中,你输入的是一个“i”,然后屏幕中所有以“i”开头的单词中的那个“i”都被替换成了从 a 到 z 的字符,并高亮;你可以输入这些高亮的字符直接跳转到那个位置。)

  8. find-file-in-project

提高程序员生产力的10大Emacs插件

  如果你喜欢 Sublime text 以及它可以用非常方便的 Ctrl-p 模糊搜索来打开一个项目中的任何文件的功能,你将会喜欢上 find-file-in-project (简称 ffip)的。使用设置指定了您的版本控制的根文件夹后,您可以轻松地调出一个很酷的文本条,通过快速扫描和搜索你的代码,来根据你输入的名称找到匹配的文件。我喜欢把它绑定到键盘上的 F6 键。如果你不知道整个目录从上到下的复杂结构,这很简单,而且非常易用。

  9. Flymake

  对 IDE 的爱好者来说,我认为语法检查器是 IDE 最强大的特性之一,它非常适合初学者和方便了那些疲惫的程序员。感谢 Flymake,Emacs 用户也可以享受到了语法检查器。因为我工作中用 PHP 很多,Flymake 就不需要任何额外的配置。当我写代码的时候,它会自动检查我的代码和高亮任何一个包含问题的行。对于编译语言,Flymake 将寻找一个用于检查你的代码的 Makefile。真神奇。

  10. electric-pair

  最后,但并非最不重要,在我看来,electric-pair 是最简单但最强大的插件之一。它会自动关闭你输入的括号。它起初看起来并不是很有用,但相信我,在被寻找配对括号折磨几百次之后,你会很高兴有这么一个插件,可以确保你所有的表达式的括号都是一一对应的。

  


以上是关于生产力系列(篇四):Emacs + HHKB的主要内容,如果未能解决你的问题,请参考以下文章

开始使用 Org 模式吧,在没有 Emacs 的情况下 | Linux 中国

提高程序员生产力的10大Emacs插件

使用 Emacs 进行社交并跟踪你的待办事项列表 | Linux 中国

用Org-mode管理emacs配置

哪款键盘非常适合编程写代码

Gears of Programmer