Emasc Tutorial
C-x C-c
退出Emcas。C-V
下滚。M-V
回滚(没有M的话可以用ESC替代)。C-l
刷屏,并且移动半屏位置。
C-p
上一行;C-n
下一行;C-b
左移;C-f
右移。M-f
和M-b
按单词而不是字符进行左移或者右移。
C-a
行首;C-e
行尾;M-a
句首;M-e
句尾。
M-<
移到页首,M->
移到页尾。
可以使用方向键按位移动。可以尝试结合C或者M观察效果。
C-u num
作为前缀可以开启循环模式。
执行C-g
可以取消当前悬置命令,重新再来。
有一些命令默认是disalbed。比如C-x C-l
。这些命令会触发一个确认,问你是否要执行,如果要,则敲空格。
C-x 1
关闭其他窗口。
C-h k C-f
可以上下分屏。
一些删除相关的命令:
<DEL>
, deleteC-d
, deleteM-<DEL>
, killM-d
, killC-k
, killM-k
, kill
C-<SPC>
可以开启选择。对于选中的操作,可以执行比如C-w
等操作。delete和kill是两个不同的概念。delete就是纯粹的删除,但是kill的内容可以重新插入。这个插入的操作叫做yank,对应的快捷键是C-y
和M-y
。
撤销的快捷键是C-/
。等效的快捷键包括C-_
以及C-x u
。
C-x C-f
用来寻找一个文件。C-x C-s
保存一个文件。C-x s
会遍历未保存的缓冲,提示你保存。
EMACS的扩展命令格斯:
- C-x 后面跟单个字符
- M-x 后面跟长命令名
一个M-x
的例子:M-x replace-string
emacs会周期性帮你保存文件。如果你的文件是hello.c
,那么自动保存的文件内容会存在#hello.c#
。这个临时文件在不需要的时候会自动删除。电脑崩溃的时候,emacs会提醒是否从临时文件恢复。也可以手动输入M-X recover-this-file
来恢复。
emacs可以在不同模式切换。模式栏显示一些模式相关的状态信息。默认情况emacs执行的是fundamental-mode。通过M-x text-mode
可以切换到文本模式。还有许多其他模式。通过C-h m
可以查看当前模式的帮助。
模式分主辅。一个主模式可以搭配多个辅模式使用。比如使用M-x auto-fill-mode
可以开启自动分行模式。
通过C-x f
可以修改默认行宽(70)。C-u 2 0 C-x f)
可以将行宽设为20。使用M-q
重排段落。
通过C-s
可以开始渐进式搜索。C-r
类似,但是执行方向相反。
C-x 2
可以将当前窗口上下一分为二。C-M-v
或者ESC C-v
可以滚动下面的窗口。C-x o
将光标移到另外的窗口。通过C-x 4 C-f
可以直接以另外的窗口打开文件。
emacs可以创建多个frame,其每个可以包含多个窗口,相关的菜单,滚动条,回显区域等等。在图形化的条件下,一个frame可以是一个图形的窗口。C-x 5 2
创建一个新的frame。C-x 5 0
关闭当前frame。
敲三次ESC
,可以从recursive editing level返回。比如敲了M-x
之后,可以敲三次ESC
返回。在C-g
不管用的情况下这个技巧会很有用。
可以用C-h
来开启相关帮助,比如C-h ?
可以打开一个新的帮助窗口。F1或者M-x help
也能达到类似效果。通过C-h c
可以获得最基本的帮助,例如C-h c C-p
。C-h k
可以比C-h c
获取更多信息。
其他好用的帮助命令:
C-h f
提供对函数的帮助,例如C-h f previous-line
C-h v
提供对变量的帮助C-h a
列举相关命令,比如C-h a file
C-h i
查看info帮助C-h r
打开帮助文档
其他配置
禁止光标跳动
菜单Options->Blink Cursor去掉
(blink-cursor-mode 0)
改变字体
菜单Options->Set Default Font通过图形对话框改变字体。
通过M-x describe-font
然后点击回车查看所设置的字体。示例输出:-outline-Consolas-normal-normal-normal-mono-24-*-*-*-c-*-iso8859-1
也可以在%appdata/.emacs.d/init.el
中设置(set-default-font “Consolas 12”)
Windows下的配置文件
可以通过C-x C-f ~/.emacs
直接打开,或者通过 C-h v user-init-file
来查看其具体位置,默认在%appdata%\.emacs
。参考Where can I find my .emacs file for Emacs running on Windows?
EMACS和EMACS Client的区别
参考https://www.emacswiki.org/emacs/EmacsClient,emacs每次打开一个新的emacs实例;而emacs client会重用既有实例。
模拟Vi
常见的有Viper,Evil以及Vile。这里以Evil为例。
先参考https://melpa.org/#/getting-started,添加下面内容:
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities`
;; and `package-pinned-packages`. Most users will not need or want to do this.
;;(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
(package-initialize)
然后根据https://evil.readthedocs.io/en/latest/overview.html#installation-via-package-el,执行下列命令:
M-x package-refresh-contents
M-x package-install RET evil RET
其他参考
(本篇完)
2021-02-21更新
使用国内源
可以使用腾讯云的MELPA镜像https://mirrors.cloud.tencent.com/help/elpa.html,将下面的行加到(package-initialize)
之前:
(setq package-archives '(("gnu" . "http://mirrors.cloud.tencent.com/elpa/gnu/")
("melpa" . "http://mirrors.cloud.tencent.com/elpa/melpa/")))
也可以使用清华的MELPA镜像https://mirrors.tuna.tsinghua.edu.cn/help/elpa/,将下面的行加到(package-initialize)
之前:
(setq package-archives '(("gnu" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
("melpa" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")))
修正windows 10下的光标问题
;; Disable the system cursor caused by screen reader etc.
(setq w32-use-visible-system-caret nil)
参考Cannot change cursor type on Windows 10
(跟新完)