笔记_Sams Teach Yourself Emacs In 24 Hours
Hour 3
buffer
- C-x C-b,显示缓冲区列表
- Control + 鼠标左键,显示缓冲区列表
window
- C-X 0 关闭当前窗口
- C-X 1 关闭当前窗口外所有其他窗口
- C-X 2 横向拆分当前窗口显示相同缓冲区
- C-X 3 纵向拆分当前窗口显示相同缓冲区
frame
frame的概念在gui系统下可以理解为不同的程序实例
region
C-X C-X 可以反转当前激活region的开始和结束位置
Major Modes
一个buffer有且只有一个确定的major mode,比如C文件 cc-mode,lisp文件 emacs-lisp-mode
C-h m 可以查看当前major mode的键绑定情况
一个major mode一般会对以下几项设置产生影响:
- 键绑定
- 特有函数
- 工具栏菜单
- 配置变量
Minor Modes
一个buffer可有任意数量的minor mode
有的minor mode仅对相应buffer有效,有的minor mode对全局emacs有效
Hour 4
剪切板
emacs 支持多个剪切板,C-y 粘贴后M-y 可以遍历剪切板
复制、剪切、粘帖
- C-k 多次调用,剪切多行,C-y 一次性粘帖多行
- C-x i 插入一个文件
保存文件
- 保存 C-x C-s
- 另存为 C-x C-w
Hour 6
resize window
- C-x {
- C-x }
如果常用建议绑定其他按键
Hour 7
Incremental Search
C-s 输入一些字符后 C-w 可以自动扩展光标所在位置的字符串
C-s 搜索到字符串后可以M-b直接推出搜索并将光标置于单词的开始处
搜索历史记录 C-s M-p M-n
search and replace
M-% 查找替换
- y 确认
- n 跳过
- ! 全部替换
- q 终止查找替换
Listing Lines that Match a Pattern 搜索结果以列表显示
M-x occur
只搜索前N个匹配
C-N M-x occur
Hour 8
bookmark 书签便于在文件间跳转
- C-x r m 创建一个书签
- C-x r b 跳转到一个书签
- M-x list-bookmarks 书签列表buffer
bookmarks buffer
- d delete
- u undo
- r rename
- x execute
Hour 9
wildcards
wildcards (also known as patterns),Wildcardsare a way of specifying several files in an easy way, something like below
- *.el
- file{A,B,C}
正则表达式的基础可以参考这一章节 Regular Expressions--Basics
search
使用正则表达式搜索更加灵活,可以修改keybind将C-s绑定为正则搜索
search and replace
使用正则版的搜索替换,有一个高级用法,可以引用匹配模式作为替换串,\n 引用第n个()中的内容
匹配模式 ^Dear *\(Mr\|Miss\)\. *\(.*\)$
替换串 Hi \2
可以将 Dear Mr. Kelvin Kuo 替换为 Hi Kelvin Kuo
Hour 10 Help System
C-h C-h 帮助主页
There are two kinds of functions:
- Those that are intended to be used right from Emacs (M-x functionname or keybind)
- Those that are intended to be used when programming Lisp (program in lisp)
C-h k 查看某个keybind 信息
C-h f 查看某个function 信息
info
C-h i info格式的emacs信息列表
- d 会top目录
- n 下一主题
- p 上一主题
- l 返回之前的主题
What is a function
通常意义来说,function是将输入参数经过计算产生输出结果的规则。与其他语言不通,Lisp function严格意义来说是没有名字的,function可以和一个符号(`car')关联,来作为函数名。
special forms and macros(宏) 也能接受参数并计算产生结果,但他们不是真正的函数。他们只是 function-like objects
Hour 11
spell check : flyspell-mode 当前版本emacs24已经自带了这个mode
complete : dabbrev-expand M-/ 可以搜索最近输入的字符串,一个更强的补全是 hippie-expand,它有一个搜索列表,会按列表(hippie-expand-try-functions-list)顺序搜索,建议将M-/绑定到hippie-expand,(global-set-key "\M-/" 'hippie-expand)
Changing Case
- M-l (downcase-word)
- M-u (upcase-word)
- M-c (capitalize-word)
Hour 12
Rectangular Commands(列编辑模式)
- Mark起始和结束位置作为矩形区域的两个顶点
- C-x r k (kill rectangle region)
- C-x r y (yank rectangle region)
- C-x r t (在矩形区域左侧输入字符串)
Hour 13 Macro
- macro can contain function(C-x)
- name a macro
- save a macro to a file
- load macro from a file
- Repeating a Macro over a Region
- pause execution of macro to let u input then resume execute
Hour 14 Ediff
ediff 可以比较两个文件的不同,比diff命令要更可视化,可以按行、按词比较
- n p 查看下一处 上一处不同
- v V 翻页
ediff merge
- n p 查看下一处 上一处不同
- a b 使用A或B文件作为merge结果
- + 使用AB合并作为结果
- r redo
ediff merge directory
Hour 15 Getting an Overview of a File

浙公网安备 33010602011771号