上周末颇花了些心思写出来的, 首发blog链接 http://blog.hickwu.com/posts/336/ 作者 Hick 如有更新, 我会在首发链接修改.
时不时有人冒出来说有 Emacs 教徒因为小拇指按 ctrl 太多导致 XXX 病, 不要用 Emacs! 有 XXX 病的人估计跟得出这个结论的人类似, 有这样的特质: 不懂得思考或者懒得主动改变. Emacs 教里不但有 evil/spacemacs 这样的 vi/vim 一族, 也有把 capslock 改成 ctrl 的键盘党, 还有改变按键习惯的行动派. 这才彰显自由的魅力, 是的, Emacs 难用爆了 --- 对把握不好自由的人来说.
作为非高手的资深 Emacs 教徒, 建议不要去死记 Emacs 按键, 知道常用的若干(拍个脑袋比如十几二十)个就可以了. 个人有限的见识范围里, 简化 Emacs 按键习惯有俩种思路, 一种是 smex 式, 一种是 hydra 式. 喜欢按 ESC 的 vi 党, 除了试自成一派的 evil/spacemacs, 也可以考虑安装个 smex 并绑定到 ESC 键绑找找感觉, 就是这样 (global-set-key (kbd "<escape>") 'smex)
. vi 党还可以继续想象.
该吹捧 hydra 了. 初步考证其作者的介绍文章和 github commit 记录, hydra 是一个 2015 年才开始的新 Emacs 包, 在 github 已经收获了 100 多个 star , 相当受欢迎了 --- 截止 hick 同学考证的时间 2015-03-21 , github 上超过 100 个 star 的 Emacs 类项目不到 200 个.
特别说明下, hydra 作为新兴项目, 作者年初介绍的 blog http://oremacs.com/2015/01/20/introducing-hydra/ 的使用方式跟最新的情况已有转变, 不再支持 hydra-create , 说不定后续还会有什么改进. 本文仅作为指引, 最新情况最好参考官方: https://github.com/abo-abo/hydra . 插播广告: 也欢迎关注本人(Hick)在维护的 Emacs 微信公众账号: Emacsist, 除了分享交流 Emacs 使用, 看到有 hydra 的新情况我也会通过公众账号广而告之 :)
如果用过 magit , 对 magit-status 下按 c 等出现的可选菜单应该有印象, hydra 正是把这个能力扩展了. hydra 也在快速进化变强, 最基本的思路是: 根据使用者需要组合一系列函数, 每个函数用一个字母表示; 再定义一个前缀按键比如 C-t (当然也可以是 ESC). 配置好以后按 C-t 就会在 mini buffer 中显示该系列函数的列表, 再按对应的字母即可执行函数, 候选列表提供高亮以及函数说明等体验.
建议以包方式安装(需 Emacs 24 或者以上版本) hydra: M-x package-install hydra
在配置文件中定义需要组合的相关函数以及对应菜单的样式的函数, 并绑定到全局快捷键 C-t :
(defhydra hydra-hick (:color pink
:hint nil)
"
^Utl^ ^Unmark^ ^Actions^ ^Git
^^^^^^^^-----------------------------------------------------------------
_k_: kill line _u_: unmark _x_: execute _S_: magit show
_s_: smex _U_: unmark up _b_: bury _g_: magit status
"
("k" kill-line :exit t)
("u" Buffer-menu-unmark)
("U" Buffer-menu-backup-unmark)
("s" smex)
("x" Buffer-menu-execute)
("b" Buffer-menu-bury)
("T" Buffer-menu-toggle-files-only)
("g" magit-status :color blue)
("S" magit-show :color blue)
("c" nil "cancel")
("v" Buffer-menu-select "select" :color blue)
("o" Buffer-menu-other-window "other-window" :color blue)
("q" quit-window "quit" :color blue))
(global-set-key (kbd "C-t") 'hydra-hick/body)
生效后按 C-t 就会出现如下图所示可选菜单, 再按 k 就会调用 kill-line (默认绑定到 C-k) 删除当前行光标以后的文本. 注意定义 k 对应的函数的时候的 ":exit t" 表示执行完 kill-line 函数以后退出 hydra 提示菜单, 而默认情况下没有指定则不会退出.
示例只是随便找了一组函数弄到了一起, 也可以按照个人使用习惯定义多组, 比如 python 操作习惯一组绑定到 "C-t p", ruby 操作习惯一组绑定到 "C-t r". 用户自己定义其实稍显麻烦, 个人预测可能将来会有一些定义好的 hydra 操作模板可供选择. 更多高级用法等参见官方https://github.com/abo-abo/hydra .
有些同学可能用多了按键组合比如 "C-x o" , 却不知道其对应的函数, 按键之前按 "C-h" 也就是 "C-h C-x o" 即可, "C-h m" 可以查看当前 major-mode 和所有 minor-mode 提供的相关函数和按键等情况, "C-h" 前缀的系列按键最好都熟悉下, "C-h C-h" 可以查看.
某种意义上来说, hydra 做的也没什么神奇的, 跟挨个定义全局或者局部组合键多了一个提示说明, 可以省去组合键的记忆. 比较不那么常用, 时不时又需要或者不容易记的若干相关函数建议组团走 hydra 方式.
呼应下开头, 就个人的使用经验来说, Emacs 的终端跟非终端体验的差别, 导致我没有动力在某些场景(比如 vps, 公司线上机器)下使用 Emacs. 用 putty 终端下 ace-jump-mode 和 company-mode 等个人使用体验都不大好, 有尝试去 github 提 issue , 没能力和精力去深究. 不得不以简单的方式使用 vi , 比较遗憾. (根据小伙伴的反馈, 我的个人体验差别可能主要由 windows 的工具导致的, 回头我再试试 mac 终端等, 有结果了再来更新)
ps.
- 欢迎转载, 不过麻烦注明原文地址和作者
- 本文纯属个人心得, 不代表任何立场
- 如有疏漏, 欢迎交流指正
- 对喜欢交流而不只是想问问题的 Emacs 爱好者, 欢迎加入初创 QQ 群 137865857 或下面二维码的 Emacs 微信群, 不满足条件的进去了也会被很带感的踢出去的, 慎入! 喜欢热闹人多的, 可以加入源自水木社区 Emacs 版的 QQ 群: 59134186 有 500 多号人.
!!!!!! 如果转载的特别注意下面的微信二维码, 有效期只有 7 天, 要么不带 ps. 以下的内容, 要么就直接引用二维码图片地址, 我观察有价值的话会持续更新对应的二维码保证有效.
微信群附加说明:
- 对"喜欢分享交流而不只是想问问题的 Emacs 爱好者", 欢迎加入; 退出自由,
- 不追求人多和热闹, 追求尽可能的实用: 不满足上条的进来了也会被很带感的踢出去的, 慎入!
- 建议但是不限制: 移动版微信阅读, PC版或者网页版参与讨论
- 有时候微信群消息多太骚扰, 可以考虑临时在群设置种开启免打扰模式
相关推荐
GUI版本Emacs的按键可视化工具 该软件包是GUI版本Emacs的按键可视化程序。创建截屏视频时,您不再需要使用外部工具来显示击键! 安装 melpa提供了按键功能。您可以通过package-install Mx package-install [ret] ...
Emacs是一款强大的文本编辑器,深受程序员和高级用户喜爱,因其高度可定制性和丰富的扩展功能而闻名。这个压缩包包含了三本关于Emacs的重要书籍,旨在帮助用户从初识到熟练掌握这款工具。 《Survive in Emacs》是...
6. **模板系统**:AUCTeX内置了多种LaTeX文档类别的模板,如article、report、beamer等,简化新文档的创建过程。 7. **宏和环境的可视化编辑**:AUCTeX提供了一个交互式的界面,允许用户通过菜单或快捷键来添加、...
九头蛇 这是GNU Emacs的软件包,可用于将相关命令绑定到带有公共前缀的短绑定系列中,即Hydra。诗人描述通过前缀绑定(身体+任何一个头)召唤九头蛇之后,所有头都可以连续调用,只需要短暂扩展即可。 一旦大力神...
大多数Linux发行版都提供了包管理器来简化软件安装,如Debian/Ubuntu系列的`apt`,Fedora/CentOS系列的`yum`或`dnf`,以及Arch Linux的`pacman`。以下是一些常见的安装步骤: 1. **使用包管理器安装**: - 对于...
Emacs 24.5是针对Windows平台的版本,它是一款功能极其强大的文本编辑器,被誉为"神一样的编辑器"。这款编辑器以其高度可定制性、丰富的功能和开源特性深受程序员、作家以及任何需要处理文本的人士喜爱。在Emacs的...
为了便于理解和记忆,我们通常使用以下缩写表示特定的按键组合: - `Cx`:同时按下Ctrl键和x键。 - `cx-`:先按Ctrl键,释放后再按x键。 - `Mx`:同时按下Alt键和x键。 - `Mx-`:先按Alt键,释放后再按x键。 #### ...
### Emacs用户手册中文版知识点概览 #### 一、Emacs简介与发展史 - **GNU与Emacs**:Emacs是GNU项目的一部分,由Richard Stallman于1975年在MIT创立的Free Software Foundation (FSF)发起。GNU旨在创建一个完全...
熟练掌握配置文件的编写和管理,能够使Emacs成为得心应手的利器,助力开发者在代码世界中游刃有余。如果你对Emacs感兴趣,不妨深入研究这个`my_emacs`配置文件,从中学习并构建属于自己的高效工作环境。
GNU Emacs 是什麽 GNU EMACS 的特质 Emacs 的线上辅助说明 Emacs 的基本知识 Emacs 的自学教材 Ctrl-h 的用法 Emacs 的 info 使用说明 Emacs 的整合环境 如何在 Emacs 中执行 Shell 的指令 有关目录的编辑...
2. `AUCTeX`: 这是Emacs中用于LaTeX写作的强大工具,它提供了自动完成、错误检查、预览等功能,极大地简化了LaTeX文档的编写过程。 3. `CEDET`: 这是一套集成开发工具,包括源码分析、自动完成、重构等功能。其中,...
标题 "[emacs].emacs" 暗示我们正在讨论的是 Emacs 配置文件,这是一个非常重要的文本编辑器的个性化设置。Emacs 是一个高度可定制的、功能强大的编辑器,广泛用于编写代码、文档等,尤其在程序员和系统管理员中非常...
Emacs是一款强大的文本编辑器,尤其受到程序员和高级用户的喜爱,因为它提供了丰富的功能和高度的可定制性。作为一款“好用的代码剪辑软件”,Emacs不仅支持编写各种编程语言,还具备代码高亮、自动补全、语法检查、...
Emacs 26.1是GNU Emacs编辑器的一个重要版本,发布于2018年6月3日,特别为Windows平台进行了优化,构建为x86_64-w64-mingw32架构。作为一款强大的文本编辑器,Emacs不仅仅是一个简单的文本处理工具,更是一个全功能...
Emacs不仅是文本处理的利器,它还支持多种编程语言,并且拥有海量的插件和扩展包。这意味着,无论你的工作需求是什么,Emacs很可能都已经有现成的工具来满足你的需求。它的可定制性几乎到了无限的境地,这主要归功于...
Emacs是一款强大的文本编辑器,深受程序员和程序员爱好者们的喜爱,因为它的高度可定制性和丰富的扩展功能。在本文中,我们将深入探讨如何配置Emacs,使其成为一款高效、...这样,Emacs就能成为你得心应手的开发利器。
### Emacs 使用手册知识点详解 #### 一、GNU与Emacs的关系 - **GNU**:由Richard Stallman于1975年在MIT发起的Free Software Foundation(FSF)中的一个项目,全称“GNU's Not Unix”。GNU的目标是创建一个与Unix...
《Survive in Emacs》是为初学者准备的一份详尽的Emacs编辑器入门指南,旨在帮助用户快速熟悉并掌握这款强大的开源文本编辑器。Emacs不仅是一个编辑器,更是一个功能丰富的集成开发环境(IDE),它提供了丰富的...
Emacs是一款强大的文本编辑器,深受程序员和程序员爱好者们的喜爱,因其高度可定制性和丰富的扩展功能而闻名。本文将深入探讨Emacs的配置与插件使用,帮助新手快速上手。 首先,我们要明白Emacs的基本配置是提升其...
Linux 下文本编辑利器 Emacs 简介与安装过程 Emacs 是一款开源的文本编辑器,功能强大,在 Linux 平台上的软件工程师中非常流行。本文对 Emacs 进行了简要介绍,并详细介绍了 Emacs 在 Redhat 中的安装和配置过程...