Emacs 编辑程序常用命令
定位命令
Emacs 提供了很多快速定位的命令,这些命令可以帮助我们快速定位到想编辑的地方,我们可以使用 M-a 直接定位到程序行的开头,使用 M-e 直接定位到程序行的结尾部分。
此外还可以使用 M-f/M-b 以单词为单位向前/向后跳跃,这样比用方向键一个字母一个字母的移动要快得多,当我们在写函数的时候,可以使用 C-M-a 快速跳到函数的头部,使用 C-M-e 跳到函数的尾部,我们还可以使用 C-M-h 选中当前正在编辑的整个函数,然后使用 M-w 拷贝该函数,或者使用 C-w 剪切该函数,然后将光标移动到新的位置,按下 C-y 将剪切的函数移动到新的位置处。
最后值得一提的是,emacs 还能够根据 grep 的结果,甚至是编译的输出来定位,但是这部分就属于比较高级的内容,暂不再此阐述,下面的表格列出了这些常见的命令及说明。
命令 | 说明 |
---|---|
M-a | 定位到一行的开头 |
M-e | 定位到一行的结尾 |
M-f | 向前移动一个单词 |
M-b | 向后移动一个单词 |
C-M-a | 定位到函数头部 |
C-M-a | 定位到函数结尾 |
C-M-h | 选中整个函数 |
M-w | 复制选中的内容 |
C-w | 剪切选中的内容 |
C-y | 粘贴选中的内容 |
格式重排
最常使用的格式重排命令是 TAB,在编辑中按下 TAB 键,Emacs 会自动对正在编辑的行进行重排,若想同时对多行进行格式重排,则可以用鼠标选中要缩进的代码块,然后按下 TAB 键,则 Emacs 对所有选中行进行重排。
命令 | 说明 |
---|---|
TAB | 对当前行或选中行进行格式重排 |
注释
Emacs 中可以使用 M-;
来完成各种注释的操作,如果你想在编辑一行语句的后面添加上注释,可以按下 M-;
,Emacs 就会在该行语句后面自动添加上行注释符号,并将光标移动到待输入注释的地方。
如果光标所在行的语句后面已经有了行注释,再按下 M-;
则会对该注释进行格式重排,使用这种方式可以使得多行代码的注释对齐,若我们想临时注释掉一段代码,可以选中待注释的代码端,然后按下 M-;
,Emacs 会在代码段的每行代码前添加行注释符号,从而注释掉这段代码,若我们又想启用这段注释掉的代码,只需要选中这段注释掉的代码,再按下 M-;
,则 Emacs 会去除每行代码前的注释符号,从而启用这段代码段。
命令 | 说明 |
---|---|
M-; | 添加/去除/重排注释 |
C-u M-; | 删除注释 |
自动补全命令
Emacs 中常用的补全命令有两个,一个是 M-/
,这个命令会将光标前的单词作为前缀,然后扫描当前 buffer 中所有以该前缀开头的单词作为补全的候选单词,供我们选择。
例如若当前buffer中已经包含了'unWrite unRead',则我们在输入'un'之后按下M-/后,Emacs会先帮我们补全为unWrite,再按一下M-/则回补全为unRead
另一个补全命令是 C-M-i 或者 M-TAB(若在 windows 下会跟任务切换热键冲突,则可以先按下 ESC 再按下 TAB 代替)该命令会调用命令 completion-at-point 来对光标所在的单词进行补全,该命令会调用多种方法来尝试补全(例如从 tag 文件中获取补全信息等等)
命令 | 说明 |
---|---|
M-/ | 在buffer中选中指定前缀开头的单词作为补全候选 |
C-M-i / M-TAB / ESC-TAB | 调用命令completion-at-point进行补全 |
浏览程序大纲(hs-minor-mode)
Emacs 提供了一种称为 hs-minor-mode 的模式,开启该模式之后可以使我们选择性的隐藏程序的一部分,开启 hs-minor-mode 的方法是执行 M-x hs-minor-mode 开启了hs-minor-mode 之后,就可以使用 C-c @ C-h 来隐藏光标所在的程序块,该隐藏的程序块会消失在屏幕上取而代之的是一个三个点的省略号,这是我们可以使用 C-c @ C-s 来让隐藏的程序块重新显示出来,若觉得记住两个命令来分别隐藏/显示程序块太麻烦,Emacs 还提供了 C-c @ C-c 来切换隐藏/显示当前块,灵活使用这几个命令,可以方便的浏览程序的大纲。
命令 | 说明 |
---|---|
C-c @ C-h | 隐藏当前块 |
C-c @ C-s | 显示当前块 |
C-c @ C-c | 切换隐藏/显示当前块 |
其他工具
imenu 菜单
通过执行 M-x imenu-add-menubar-index 可以在 Emacs 的菜单栏上增加一个 Index 菜单,通过该 Index 菜单可以快速定位到指定的函数、变量、宏的位置
which-func-mode
通过执行 M-x which-func-mode 可以开启 which-func-mode,开启该模式之后,光标所在的函数名会显示在 mode-line 上
show-paren-mode
通过 M-x show-paren-mode 开启 show-paren-mode 后,如果光标处于开括号前或者闭括号后时,则该括号会被高亮显示
electric-pair-mode
通过 M-x electric-pair-mode 开启 electric-pair-mode 后,若插入一个开括号,则 Emacs 自动补全一个闭括号,并将光标放在括号内等待输入
electric-layout-mode
通过 M-x electric-layout-mode 开启 electric-layout-mode 后,若插入指定的表示一行语句结尾的字符时,Emacs 自动帮我们回车换行
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论