区块编辑

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

“区块选择”一节

需要补充的是,完成区块选择时,实际定义了两种区块 :

---XXXXXxxx
xxxXXXXXxxx
xxxXXXXXxxx
xxxXXXXX---	  

---代表没有被选中的区域

连续区块为标记和光标点之间连续的区块;字符 X 和 x 均为连续区块

矩形区块为标记和光标点之间矩形的区块;大写字符 X 为矩形区块

表 25.6. Emacs 区块编辑

连续区块
C-SPCM-x set-mark-command在光标点处设置标记
C-@同上建议使用 C-t
M-@M-x mark-word在单词结尾处设置标记
M-hM-x mark-paragraph选中段落
 M-x mark-end-of-sentence在句末设置标记
C-x hM-x mark-whole-buffer整个缓冲区
C-x C-xM-x exchange-point-and-mark交换标记和光标点
C-wM-x kill-region剪切区块
M-wM-x kill-ring-save复制区块
C-yM-x yank粘贴区块
M-yM-x yank-pop队列粘贴
矩形区块
C-x r kM-x kill-rectangle删除矩形区块
C-x r yM-x yank-rectangle粘贴上一次删除的矩形区块
C-x r tM-x string-rectangle用指定字符填充
C-x r oM-x open-rectangle用空格插入
C-x r cM-x clear-rectangle用空格填充
C-x r rM-x copy-rectangle-to-register拷贝到寄存器中

搜索和替换

Emacs中,默认使用 增量搜索 :在搜索对话模式中输入关键词的同时,Emacs 就开始进行搜索,随着关键字的输入,不断的缩小搜索范围

而传统的非增量搜索,则是关键词输入后,再进行搜索。

表 25.7. Emacs 搜索

增量搜索
C-sM-x isearch-forward向前增量搜索
C-rM-x isearch-backward向后增量搜索
C-M-sM-x isearch-forward-regexp正则表达式向前增量搜索
C-M-rM-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-tM-x transpose-chars
单词M-tM-x transpose-words
C-x C-tM-x transpose-lines

 

将 TAB 字符转换为空格

选中需要转换的区域, M-x untabify

对齐文本块

选中需要对齐的区域, M-x indent-region