基础编辑

优质
小牛编辑
136浏览
2023-12-01

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

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

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

定位

表 25.4. Emacs 定位

 向前向后向下向上
卷屏  C-vM-v
字符C-fC-bC-nC-p
单词M-fM-b  
C-aC-e移动到行首或行尾,不能跨行
M-aM-e 
段落M-{M-}
缓冲区M-<M->移动到缓冲区起始或结束
行号M-g gM-g M-gM-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-dM-x delete-charDELM-x delete-backward-char
单词M-dM-x kill-wordC-Delete / M-DELM-x backward-kill-word
 
光标至行末C-kM-x kill-line
整行C-S-backspaceM-x kill-whole-line
按表达式删除C-M-kM-x kill-sexp
区块C-wM-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)