区块编辑
优质
小牛编辑
140浏览
2023-12-01
“区块选择”一节
需要补充的是,完成区块选择时,实际定义了两种区块 :
---XXXXXxxx xxxXXXXXxxx xxxXXXXXxxx xxxXXXXX---
---代表没有被选中的区域
连续区块为标记和光标点之间连续的区块;字符 X 和 x 均为连续区块
矩形区块为标记和光标点之间矩形的区块;大写字符 X 为矩形区块
表 25.6. Emacs 区块编辑
连续区块 | ||
C-SPC | M-x set-mark-command | 在光标点处设置标记 |
C-@ | 同上 | 建议使用 C-t |
M-@ | M-x mark-word | 在单词结尾处设置标记 |
M-h | M-x mark-paragraph | 选中段落 |
M-x mark-end-of-sentence | 在句末设置标记 | |
C-x h | M-x mark-whole-buffer | 整个缓冲区 |
C-x C-x | M-x exchange-point-and-mark | 交换标记和光标点 |
C-w | M-x kill-region | 剪切区块 |
M-w | M-x kill-ring-save | 复制区块 |
C-y | M-x yank | 粘贴区块 |
M-y | M-x yank-pop | 队列粘贴 |
矩形区块 | ||
C-x r k | M-x kill-rectangle | 删除矩形区块 |
C-x r y | M-x yank-rectangle | 粘贴上一次删除的矩形区块 |
C-x r t | M-x string-rectangle | 用指定字符填充 |
C-x r o | M-x open-rectangle | 用空格插入 |
C-x r c | M-x clear-rectangle | 用空格填充 |
C-x r r | M-x copy-rectangle-to-register | 拷贝到寄存器中 |
搜索和替换
Emacs中,默认使用 增量搜索 :在搜索对话模式中输入关键词的同时,Emacs 就开始进行搜索,随着关键字的输入,不断的缩小搜索范围
而传统的非增量搜索,则是关键词输入后,再进行搜索。
表 25.7. 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-% | M-x query-replace | 询问替换 |
C-M-% | M-x query-replace-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 | 正则表达式替换 |
- 增量搜索时,关键词会被一直保留。可以直接进行下一次搜索
- 下一次增量搜索,如果之前进行了其它操作,则需要连续两次命令(快捷键),才能召回关键词。
C-g
取消搜索,回到搜索前的位置RET
结束搜索,停在当前位置- 可以选中区块后,在区块内进行替换
其它
插入控制字符
使用 C-q
,可以在缓冲区插入一个控制字符。例如:
C-q C-m = ^M
文本换位
表 25.8. Emacs 其它
字符 | C-t | M-x transpose-chars |
单词 | M-t | M-x transpose-words |
行 | C-x C-t | M-x transpose-lines |
将 TAB 字符转换为空格
选中需要转换的区域, M-x untabify
对齐文本块
选中需要对齐的区域, M-x indent-region