帮你精通Emacs之二:如果上帝是程序员用的编辑器

帮你精通Emacs之二:如果上帝是程序员用的编辑器

前一章 帮你精通Emacs之一:Emacs其实很简单哟 初窥了Emacs简单易用的特性之一便是语义化键绑定,

语义化包含两个方面:

移动Cursor的目的, 一则为浏览阅读, 二则为编辑做准备, 是编辑的前驱步骤.

当聊起编辑器时候, 一个著名的段子"Emacs不是好的编辑器, 而是一个操作系统"; 如果追问一句"请问, 您对编辑器定义是什么?", 立刻会发现所谓编辑器圣战, 便是茶余饭后的小品或者群口相声, 以"段子", 调剂案牍劳累.

"When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.", 编辑器的基本功能曲指可数,很容易实现。

1.编辑器的基本功能:

编辑工作以"行"为基本单位,

复制, 黏贴, 增删改查, 而"查"是个中关键, 应该放在前面.

2.拆解

键的绑定同样遵循语义化的原则, 比如delete(killing);

键(即backspace退格键, backword);

C- 后退删除一个字符,

与M-则是后退删除一个单词;

与backwords相对应的是forwards,(进格删除)

C-d M-d分别进格删除一个字符和一个单词,

总结: 键绑定的是后退删除, 语义字母"d"绑定的则是进格删除.

删除的动作除了之外, Emacs还特有一个"killing".

Killing的范围比delete大, 分别绑定"C-"和"M-"实现以下语义:

- C-k是删除到行尾,

- M-k是删除到句尾, 跟前面一致.

以上是forwards进格删除,

对行的backwards退格删除

C-x 对句子的退格删除.

没有对"句子"退格删除的操作.

3.调用直觉

这么多的键绑定, 从语义化的理解是一方面, 更重要的一方面可能应该去找捷径, 比如调用直觉和由此带来的强烈满足感和成就感.

举例编辑过程中对blank-lines的处理,

Emacs Manual中很多类似的高颗粒度的绑定键, 头悬梁锥刺股的背下来, 对emacs的热情和兴趣或许早早磨光了.

回到C-x C-o调用(delete-blank-lines)

假设有这样四行:

"The quick brown fox jumps over the lazy dog"


"The quick brown fox jumps over the lazy dog"

当前的光标在第一行上的fox, 发现中间空行是多余的, 要将其删掉.

需要动用人肉劳力这样做:

1. C-n 管标移动到下一行

2. 连续两次C-k删除空行

3. 然后凭借超强的记忆力(记住刚才是在fox的位置, 和导弹一般精确的点位控制回到fox后面.

如此操作, 着实劳神费力.

应用C-x C-o呢? 可以在第一行的任意位置上调用C-x C-o, 下面的空行会自动删除.

如何怎样从直觉上理解刚才的操作呢?

光标在第一行的某个点上, 然后调用一个命令, 在光标之外的另外一个地方会立刻发生某件事情, 某种程度上是实现了远程控制;

更直觉一点, 这便是"意念移物"啊.

由此从直觉里生发的成就感和兴趣会驱动我们应用更加复杂的命令和组合, 从而更高效地"零秒"应用和掌握Emacs.

4.对比Search功能的Emacs操作与命令行操作

Emacs的优势之一是便捷地对数据和查询结果的作二次处理.

比如想从宏观上了解下Emacs手册中中全部whitespace操作.

帮你精通Emacs之二:如果上帝是程序员用的编辑器

emacs-manual

传统的操作方法, 可以从Terminal中完成。

find . -type f -exec grep --color -inH --null -e  "whitespace" {} +
帮你精通Emacs之二:如果上帝是程序员用的编辑器

如图所示, 虽然可以看到结果, 但没法做简单的统计,即使加上nl:

find . -type f -exec grep --color -inH --null -e  "whitespace" {} + | nl
帮你精通Emacs之二:如果上帝是程序员用的编辑器

也只能大略了解到’whitespace’在整个文档中, 有95句话提到过.

处理类似的问题, Emacs的优势显露无余, 在Emacs中执行同样的命令:

C-x grep-find;

下图的结果瞬间眼明心亮, 有95句话有一个或多个whitespace这个单词, 总计有151个. 而且在 Killing.org 这个文件中有6句话, 在 text.org 中有5句, 在 Display,org 中有17句话, 在 Program.org 中也有17句, 等等,

帮你精通Emacs之二:如果上帝是程序员用的编辑器

数据二次加工

Emacs中执行命令的突出优势是对数据便捷的二次加工处理.

小结

目前的流程图 Meta --> Control ---> Cursor ---> Edit

由Meta的词源语义出发分析Emacs的快捷键绑定, 引入Ctrl键简化输入过程, 光标的移动作为edit的前置步骤, 以find-grep查询收尾基本的编辑功能.

在切入到God's Eyes(Dired) and God's Hands(Booksmarks)之前,

光速浏览File的基本操作(读取和保存)

C-x C-f (M-x find-file) 找到并打开文件

C-x C-r (r是read-only), 比如浏览自己的配置文件, 要避免无心修改掉东西.

C-x C-s (s,save) 保存单个文件

C-x s 保存全部文件, 保存全部文件功能更常用, 因此组合键也少.

最后在个人配置上添加两行, 设置自动保存文件.

(setq auto-save-visited-mode t)
(auto-save-visited-mode +1)

以上完结, 马上进入精彩的部分.

展开阅读全文

页面更新:2024-03-17

标签:编辑器   词源   空行   语义   光标   段子   绑定   程序员   单词   直觉   上帝   命令   优势   编辑   操作

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top