emacs

Emacs基本的按键与命令

2021-08-22  本文已影响0人  Jamza

按键前缀

C-:表示键盘上的Ctrl

M-:表示键盘上的Alt

S-:表示键盘上的Shift

DEL:表示键盘上的Backspace键,注意,不是Delete

RET:表示键盘上的Enter

SPC:表示键盘上的Space

ESC:表示键盘上的Esc

TAB:表示键盘上的Tab

文件

C-x C-f:打开一个文件,或者创建一个不存在的文件

M-x find-file:作用同上

C-x k:关闭一个buffer,作用等于关闭已经打开的文件

C-x C-s:保存文件内容,即将修改的文件内容写入磁盘

M-x save-buffer:作用同上

C-x C-w:将当前文档保存为另一个文件,即另存为

M-x write-file:作用同上

C-x b:切换文件,即切换缓冲区buffer

说明:实际上在Emacs中,文件与buffer是不同的实体,文件一般指的是磁盘上的数据体,而bufferEmacs中作为文件修改临时缓存的缓冲区,注意区别。

ido模式

Emacs具有一个被称为ido的模式,全称为interactively do things,在ido模式下,可以更加方便地选择列表元素,相比使用Tab进行自动补全更加便利。

M-x ido-mode:使能或者禁止ido模式

可以在Emacs的启动配置中添加以下语句,以默认打开ido模式:

(setq ido-enable-flex-matching t) (setq ido-everywhere t) (ido-mode 1)

buffer

C-x C-b:列出buffer列表

M-x list-buffers:作用同上

Emacs中,还存在功能更灵活的buffer管理模式,被称为ibuffer。可以通过以下命令进入ibuffer

M-x ibuffer:进入ibuffer管理模式

一般我们可以在Emacs的配置文件中进行ibuffer的命令键绑定:

(global-set-key (kbd "C-x C-b") 'ibuffer)

ibuffer的过滤命令包括:

/m:以major mode方式添加过滤

/n:以buffer名称的方式添加过滤

/c:以buffer内容的方式添加过滤

/f:以文件名称的方式添加过滤

/>:以buffer大小的方式添加过滤

/<:以buffer大小的方式添加过滤

//:删除当前所有有效的过滤

ibuffer的过滤组的命令包括:

/g:创建一个过滤组

TAB:移动到下一个过滤组

M-p:移动到上一个过滤组

/\:删除当前所有的过滤组

/S:将当前过滤组保存为一个名称

/R:恢复之前保存的过滤组

/X:删除之前保存的过滤组

ibuffer的排序命令包括:

s a:以字母顺序排序

s f:以文件名称顺序排序

s v:以上次访问时间排序

s s:以buffer大小排序

s m:以major mode排序

s i:反序当前的buffer顺序

书签

可以在文件的任何地方设置书签,后续可快速跳转到书签处,书签相关的命令为:

C-x r m:在当前光标处设置书签,需输入书签名称

M-x bookmark-set:作用同上

C-x r b:跳转到某个书签处

M-x bookmark-jump:作用同上

C-x r l:列出当前所有的书签列表

M-x bookmark-bmenu-list:作用同上

在书签列表状态下,可以使用以下的命令:

RET:打开书签标识的区域

s:将当前书签列表保存至文件中

r:修改光标所在的书签的名称

d:将书签打上删除标识

x:删除已打标识的书签

u:取消已经打标识的书签

光标移动

主要的光标移动操作命令包括:

C-f:向前移动一个字符,f表示为forward

C-b:向后移动一个字符,b表示backward

C-p:向上移动一行,p表示previous

C-n:向下移动一行,n表示next

C-a:移动至行首

C-e:移动至行尾

M-f:向前移动一个单词

M-b:向后移动一个单词

C-v:向前滚动一个屏幕的内容

M-v:向后滚动一个屏幕的内容

M-a:移动至句首

M-e:移动至句尾

C-l:将光标重定位至屏幕中间一行,光标所在内容位置不变

M-r:将光标重定位至屏幕的顶部,中部,底部,光标所在内容位置不变

M-<:移动至buffer的开头处,注意,按键<可能需要Shift

M->:移动至buffer的结尾处,注意,按键>可能需要Shift

M-g c n:移动至第n个字符

M-g g n:移动至第n行(高于23.2版本的Emacs有效)

C-M-f:向前移动一个整的表达式,比如,光标可从函数开头的左{处移动到函数结尾的}处,按键绑定的命令是forward-sexp

C-M-b:向后移动一个整的表达式,比如,光标可从函数结尾的右}处移动到函数开头的{处,按键绑定的命令是backward-sexp

C-M-k:剪切一个整的表达式,按键绑定的命令是kill-sexp

C-M-@:选择一个整的表达式,按键绑定的命令是mark-sexp

剪切

Emacs中,kill的意思就是cut,即剪切,剪切操作的命令包括:

C-d:剪切当前光标所在的字符

C-S-DEL:剪切整个行,DEL就是键盘上的Backspace

M-d:剪切光标当前位置至词结尾的内容

M-DEL:剪切光标当前位置至词开头的内容

M-\:剪切光标所在的所有空白符

M-SPC:剪切光标所在的所有空白符,除了光标所在的位置

C-k:剪切光标当前位置至行尾

M-k:剪切当前的整个句

粘贴

C-y:粘贴操作

选择

一般在Emacs中,默认的选择操作,需要使用C-SPC按键,但是通常在Win中,此按键与系统默认的切换输入法的按键冲突,如果无法修改系统的按键,则可以修改C-SPC按键,在Emacs的启动脚本中添加以下的语句:

(global-unset-key (kbd "C-SPC")) (global-set-key (kbd "M-SPC") 'set-mark-command)

以下以M-SPC作为默认的选择命令:

M-SPC:以光标所在位置为起点,移动光标,所选区域被高亮选中

C-w:剪切高亮选中的区域

M-w:复制高亮选中的区域

C-y:粘贴高亮选中的区域

撤销

C-/:撤销操作

C-x u:作用同上

查找

Emacs具有多种查找方式。

增量查找:通过按键C-s来执行增量查找,反复执行C-s,可逐个定位各个匹配点。

C-s:执行增量查找,输入查找字符后,重复执行C-s可逐个定位匹配点,按键绑定的命令是isearch-forward

C-r:执行增量查找,是从文档的后端往前查找,重复执行C-r可逐个定位匹配点,按键绑定的命令是isearch-backward

C-u C-s:按照正则表达式执行增量查找

Occur查找:使用增量查找,若匹配点比较多,只能通过反复执行按键,逐个越过各个匹配点,才能定位到我们需要的匹配点,为了解决这个问题,Emacs提供了Occur查找,执行后,可在Occur缓冲区列出一个匹配点的列表,可更加直观地查看所有的匹配点。

M-s o:执行Occur查找

M-g n:定位到下一个匹配点

M-g p:定位到上一个匹配点

Occur缓存区,可以执行的命令主要包括:

C-n:移动至下一行

C-p:移动至上一行

o:跳转至匹配点,光标也移动至匹配点

C-o:跳转至匹配点,但是光标还停留在Occur缓冲区

e:编辑当前的Occur缓冲区

C-c C-c:退出编辑Occur缓冲区

替换

M-%:执行查找替换,该命令需要两个输入,即需要被替换的字符串,与替换后的字符串。输入字符串后执行RETEmacs会询问是否确定执行替换操作,若输入,则执行所有匹配点的替换,若输入yes,则只执行当前光标所在的匹配点的替换。注意,输入%可能需要执行Shift

窗口

C-x 2:将当前窗口切为上下两个窗口,该按键绑定了命令split-window-below

C-x 3:将当前窗口切为左右两个窗口,该按键绑定了命令split-window-right

C-x o:在多个窗口之间切换,注意,按键中的是小写字母o,该按键绑定了命令other-window

C-x 1:关闭其他的窗口,只保留当前光标所在的窗口

Dired

Emacs具有一个内置的Dired模块,是Directory Editor的简称,顾名思义,该模块是对目录进行管理编辑的模块。

Dired模块的主要命令包括:

C-x d:选择一个目录,并在那个目录上启动Dired

C-x C-f:选择当前目录下的某个目录,并在那个目录上启动Dired

Dired目录下可以执行:

n:向下移动一个

p:向上移动一个

C-s:使用增量查找,查询Dired入口

C-x C-f:创建一个新的文件

f:打开光标所在的文件

e:作用同上

RET:作用同上

o:在另一个窗口上打开光标所在的文件

C-o:在另一个窗口上打开光标所在的文件,但是光标不会移动到新的窗口

v:以只读的方式打开文件

^:在新的Dired Buffer中打开父目录

m:标识文件或者目录入口

%m:标识那些名称匹配正则表达式的文件

%g:标识那些内容匹配正则表达式的文件

C:拷贝文件(或者是S-c),拷贝的是当前光标所在的文件,或者已经标识的文件

R:移动文件(或者是S-r),移动的是当前光标所在的文件,或者已经标识的文件

H:创建一个硬链接(或者是S-h

S:创建一个符号链接(或者是S-s

M:改变文件的权限位(或者是S-m),改变的文件是当前光标所在的文件,或者已经标识的文件

d:将文件打上删除的标识

u:删除文件已经打上的标识

x:确认并执行删除已经打上删除标识的文件

~:给所有的backup文件打上标识

=:比较文件

上一篇 下一篇

猜你喜欢

热点阅读