笔记_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

posted @ 2013-10-05 13:19  kelvinkuo  阅读(636)  评论(0)    收藏  举报