Emacs 可以方便地对单文件实现多点编辑,也可以对多个文件同时多点编辑。
单文件编辑
光标放在要编辑的内容上,用 SPC s e (M-x evil-iedit-state/iedit-mode)进入 iedit 编辑模式。
选择模式
| 按键 | 动作 |
|---|---|
ESC | 退出编辑模式 |
TAB | 切换选中 |
n | 选择下一个 |
N | 选择前一个 |
0 | 跳到当前选中的头部 |
$ | 跳到当前选中的尾部 |
gg | 跳到最先一个 |
G | 跳到最后一个 |
L | 限定在当前行 |
F | 限定在当前函数 |
J | 增加选中下一行 |
K | 增加选中上一行 |
V | 隐藏不相关的行 |
编辑模式
| 按键 | 动作 |
|---|---|
A | 追加编辑 |
I | 插入编辑 |
S | 替换编辑 |
D | 删除内容 |
p | 粘贴内容 |
U | 转换为大写 |
C-U | 转换为小写 |
多文件编辑
Helm
- 使用
SPC s s(M-x helm-swoop)查找,还可以进一步:- 用
SPC s b(M-x spacemacs/helm-buffers-smart-do-search)在同一 buffer 中查找; - 用
SPC s d(M-x spacemacs/helm-dir-smart-do-search)在同一目录下查找; - 用
SPC s p或SPC /(M-x spacemacs/helm-project-smart-do-search)在同一项目中查找; - 用
SPC s f(M-x spacemacs/helm-files-smart-do-search)在指定文件中查找。
- 用
- 将查找结果用
C-c C-e导出到单独 buffer- 在这个新 buffer 中使用
SPC s e,将这个 buffer 当作单文件,按照上面的方法继续编辑。当然还可以用其他各种方式编辑; - 在编辑完成后用
C-c C-c保存,或C-c C-k取消编辑。
- 在这个新 buffer 中使用
ivy
- 使用
C-s或者SPC s s或者M-x counsel-{grep|rg|ag|ack|pt}同样可以查找出多个匹配; - 将查找结果用
C-c C-o导出到单独 buffer,再用C-x C-q进入编辑模式;- 在这个新 buffer 中使用
SPC s e,将这个 buffer 当作单文件,按照上面的方法继续编辑。当然还可以用其他各种方式编辑; - 在编辑完成后用
C-c C-c保存,或C-c C-k取消编辑。
- 在这个新 buffer 中使用
