Emacs基本的按键与命令

Emacs基本的按键与命令,第1张

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 是不同的实体,文件一般指的是磁盘上的数据体,而 buffer 是 Emacs 中作为文件修改临时缓存的缓冲区,注意区别。

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)

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-% :执行查找替换,该命令需要两个输入,即需要被替换的字符串,与替换后的字符串。输入字符串后执行 RET , Emacs 会询问是否确定执行替换 *** 作,若输入 ! ,则执行所有匹配点的替换,若输入 yes ,则只执行当前光标所在的匹配点的替换。注意,输入 % 可能需要执行 Shift 键

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

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

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

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

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 文件打上标识

= :比较文件

我现在使用的配置是[oh-my-emacs](xiaohanyu/oh-my-emacs · GitHub),这是一个非常好的配置。特搭缺郑点如下:

1. 使用Emacs的org-mode模式的babel功能实现了整个工程.讲代码放在了文档之中,非常有创扮销意.

2. 工程结构不错, 它借鉴了[prelude](bbatsov/prelude · GitHub)的工程结构,比较清晰知颂明了.但是也会因为第一点的一些问题,不是很容易拓展.

3. 强大,是真的非常强大.功能非常丰富,大而全.支持非常多的编程语言,尤其是我经常使用的Python, 可以说是完美支持.

4. 文档非常好. 得益于第一点, `oh-my-emacs`的文档就是程序的注释,非常非常完善.

5. 对evil支持非常好,也就是说在emacs中使出vim的快感.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12134129.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存