基础编辑

几乎所有编辑器都具有的基础功能。

使用 Readline 控件的程序,例如 bash ;以及其它使用 Emacs风格 键绑定的程序,也使用基本相同的功能键。如果熟悉 bash 的快捷键,这些绑定您一定驾轻就熟

[注意] 注意
这里只是一个列表,更详细的介绍,请参阅《Emacs 快捷指南》 C-h t

定位

表 25.4. Emacs 定位

  向前 向后 向下 向上
卷屏     C-v M-v
字符 C-f C-b C-n C-p
单词 M-f M-b    
C-a C-e 移动到行首或行尾,不能跨行
M-a M-e  
段落 M-{ M-}
缓冲区 M-< M-> 移动到缓冲区起始或结束
行号 M-g g M-g M-g M-x goto-line 按行号跳转
字符位置     M-x goto-char 按字符跳转

其它:

C-M-l (M-x reposition-window)

将当前行卷至页面中部

C-l (M-x recenter)

刷新页面,将将当前行卷至页面中部 (使用数字参数指定行)

M-r M-x (move-to-window-line)

移动光标至页面中间的行 (使用数字参数指定行)

删除

表 25.5. Emacs 删除

  向前 向后
字符 C-d M-x delete-char DEL M-x delete-backward-char
单词 M-d M-x kill-word C-Delete / M-DEL M-x backward-kill-word
 
光标至行末 C-k M-x kill-line
整行 C-S-backspace M-x kill-whole-line
按表达式删除 C-M-k M-x kill-sexp
区块 C-w M-x kill-region
空白 删除连续空格 M-x delete-horizontal-space

[注意] 注意

上表中 DEL 实际按键为 Backspace ,PC 中只有 Delete 键,而没有 DEL 键,Emacs 把 Backspace 映射为 DEL

backspace 实际按键也为 Backspace

类似的,Emacs 把 PC 的 Enter 键映射为 RET ; 而 RET 实际为 C-m

可能您注意到了,Emacs 进行删除时有两种处理方法, delete 和 kill

kill

比较类似于 剪切 ,剪切掉的内容被依次放入 剪切队列 kill-ring ,可以召回。

delete

就是 删除 了,删除掉的内容并不能召回。但是可以通过 M-x undo 撤消删除。

复制

M-w (M-x kill-ring-save)

将内容放入 剪切队列 kill-ring

C-w

剪切

粘贴

C-y (M-x yank)

从 剪切队列 kill-ring 中召回最后一次放入的内容

M-y (M-x yank-pop)

从 剪切队列 kill-ring 中按后进先出的顺序,依次召回

  • 这个命令只能在 M-x yank 或者 M-x yank-pop 之后使用。也就是说,只能 C-y 后 M-y , M-y 可以连续多次。

撤消

C-/ (M-x undo)

撤消之前的修改

C-_ (M-x undo)

C-x u (M-x advertised-undo)

advertised-unde 是 undo 命令的一个别名

  • 为了减少 undo 的次数,每插入20个字符,视为一个 undo 的单位。

重做

安装 redo.el 扩展,并在配置文件中添加如下内容

;;---------- redo
;; 读取扩展
(require 'redo)
;; 设置 Redo 的键绑定
(global-set-key ( kbd "C-.") 'redo)