Emacs学习笔记(5):更有效率的编辑
前面学习了Emacs的基本编辑功能。为了让编辑更有效率,还需要了解:
- 窗口管理
- 缓冲区管理
- 搜索和替换
- 批量处理
窗口管理
C-x 2 split-window-vertically 水平分割
C-x 3 split-window-horizontally 竖直分割
C-x 1 delete-other-window 只保留当前窗格
C-x 0 delete-window 关闭当前窗格
C-x o other-window 切换窗格
C-M-v scroll-other-window 滚动下一个窗格
缓冲区管理
Emacs中,打开新的buffer,不会关闭原有buffer,而是需要手工操作:
C-x C-b list-buffers 查看缓冲区列表
C-x b switch-to-buffer 切换缓冲区
C-x k kill-buffer 关闭缓冲区
其他:可以参考ibuffer.el扩展
搜索和替换
Emacs中的搜索包括增量搜索和一般搜索。增加搜索是每次在前一次搜索的结果基础上继续搜索。在增量搜索时,如果上一次搜索之后进行了其他操作,则需要连续按两次快捷键才能召回关键词。
可以选中区块后在区块内进行搜索
增量搜索
C-s M-x isearch-forward 向前增量搜索
C-r M-x isearch-backward 向后增量搜索
C-M-s M-x isearch-forward-regexp 正则表达式向前增量搜索
C-M-r M-x isearch-backward-regexp 正则表达式向后增量搜索
一般搜索
M-x search-forward 向前搜索
M-x search-backward 向后搜索
M-x search-forward-regexp 正则表达式向前搜索
M-x search-backward-regexp 正则表达式向后搜索
替换
M-x replace-string 替换
M-x replace-regexp 正则表达式替换
询问替换
M-% M-x query-replace 询问替换
C-M-% M-x query-replace-regexp 正则表达式询问替换
取消搜索
C-g 取消搜索,光标返回搜索前的位置
RET结束搜索,光标停留在当前位置。
批量处理
批量处理的命令应该有很多,这里列出2个:
选中区域, M-x untabify:将 TAB 字符转换为空格
选中区域, M-x indent-region:对齐文本块