学习本书目的:
emacs的学习一直是陆陆续续看博客和上手实践,
这次想通过阅读"学习GNU Emacs"这本书好好系统的再复习下emacs。
yps:读技术书应该是带着一定的目的去读的,最简单的目的可能就是为了学好某一项技术或者复习下某一项技术。
对Emacs进行定制
通过.emacs文件进行定制
当我们如果.emacs配置错误,通过emacs -q 启动emacs就不会读取.emacs文件配置
yps: 我个人使用vim编辑修改哈
键盘的定制
(define-key keymap 'keystroke 'command-name)
(global-set-key "keystroke" 'command-name)
(local-set-key "keystroke" 'command-name)
- define-key 最通用,可以绑定任何一个键位映射图里的按键
- global-set-key 只能绑定全局键位映射图里的按键,因为global-map只有一个
- local-set-key 绑定当前编辑缓冲区局部键位映射图里的按键,临时性定义。
- C-x C-e 重新生效配置
程序员的Emacs
- ESC ; 注释
- ESC x kill-comment 删除注释
.c,.h后缀文件 主动进入C语言编辑模式,
如果别的后缀也想进入c语言模式:ESC x c-mode RETURN
C模式高级移动命令
按键 | 作用 |
---|---|
ESC C-a | 函数的开头 |
ESC C-e | 函数的结尾 |
ESC C-h | 函数整个选取为一个文本块 |
ESC x c-set-style | 缩进样式风格选择 |
lisp模式
- emacs-lisp-mode 编辑emacs lisp代码
- lisp-mode 编辑其他lisp系统使用的lisp代码
- lisp-interaction-mode 编辑和运行emacs lisp代码
按键 | 作用 |
---|---|
ESC C-b | 移动到上一个S表达式 |
ESC C-f | 移动到下一个S表达式 |
ESC C-t | 交换两个S表达式的位置 |
ESC C-@ | 文本块标记设置当前S表达式的末尾 |
ESC C-k | 删除光标后面的S表达式 |
命令backward-kill-sexp | 删除光标前面的S表达式 |
用Lisp语言对Emacs做进一步开发
- 整数
- 浮点数,数学上的实数,可以用小数点和科学计数法
- 字符,必须有一个前导的问号,比如“?a”
- 字符串,必须放在一对双引号中间
- 布尔值,t=真,nil=假
- 符号,各种事物的名字,比如变量或者函数的名字。如果需要名字而不是值,名字前面加上单引号。
函数
- defun 本身也是一个函数,会在自己被调用时定义一个新的函数
- let 对变量进行定义
- message函数 %s字符串,%c字符,%d整数,%f浮点数,%e科学计数法浮点数
建立自己的lisp开发库
- load-path 把自己的lisp目录添加到load-path变量里
- ESC x load-library 加载到Emacs中
- load emacs会在启动的时候加载指定的程序包
Emacs编辑器和X窗口系统
按键 | 作用 |
---|---|
C-x 5 f | 访问另一窗格里的某个文件 |
C-x 5 d | 另一个窗格里运行Dired模式 |
C-x 5 0 | 删除当前窗格 |
C-x 5 b | 切换窗格 |
Emacs下的版本控制
略
yups: 现在基本都用git做版本控制,cvs等就忽略了。
在线帮助
Emacs的在线帮助功能是最全面的。
Emacs在线帮助功能:
- 主动补足功能,Emacs能帮助完成名称的输入工作。
- 帮助键(C-h),查看关于各种问题的帮助。
- 针对复杂命令的帮助功能, 比如query-replace和dired等命令。
Emacs的自动补足功能
只需输入一个“最短无二义前缀",剩余的Emacs来补足。
包括:
- 命令
- 某给定目录里的文件
- 编辑缓存区
- Emacs变量
如果想让Emacs来帮助补足: TAB、SPACE、?
帮助命令
- C-h C-h 帮助命令手册
- C-h l 最近输入的100个字符
- C-h f 函数的作用是什么
- C-h c 按键组合将运行那个命令
- C-h v 这个变量的含义,他有哪些可能值
- C-h m 当前缓冲区编辑模式的有关资料
- C-h b 这个编辑缓冲区都有哪些按键绑定
- C-h s 这个编辑缓冲区使用的是哪个语法表
- C-h a 查找和回答
读书总结
终于读完了这本书,跳过了一些淘汰的内容和不适合自己的一些章节。
总体这本书还是非常值得一读,作者描述得很细致很细心,适合初学者入门。
而且关于emacs的书寥寥无几,真的是现在的人都不太用Emacs了?但是我很喜欢,当然我也会选择的用,而不是all in emacs。
最后推荐指数:4颗星。如果内容与时俱进更新一番,那就是4星半了。