我的Emacs键位汇总
Dec 24, 2017
由于大四这段时间事情相对来说不多(😂仅仅是相对来说),我开始学习emacs
了,学会这个强大的工具可以很好的提高自己的效率,同时学会它的过程也会提高自己学习工具的能力。
我使用Spacemacs
的配置,同时加以自己的layer
,这样的话整个配置会便于管理,我spacemacs
的配置可以在这里找到
同时这是我最后一篇使用markdown
的文章,之后的文章都会使用emacs
的org-mode
来完成。
输入操作
evil-args
evil-args
可以很好地操作函数参数
[cia]
:修改当前参数[daa]
:删除当前参数[L]
:跳转到下一个参数[H]
:跳转到上一个参数[K]
:从参数跳转到函数名首
Smartparens
Smartparens
是一个用来控制括号的小工具。
Surrounding
Surrounding
是一个快速修改配对文本的小工具。
[ys + 文本对象 + 字符]
:将特定字符包围某文本对象[Ys + 文本对象 + 字符]
:将特定字符包围某文本对象(另起一行)[ds + 字符]
:删除包围的某个特定字符[cs + 老字符 + 新字符]
:删除被包围的某特定字符换成另一个- 在可视模式下,
s
也可以直接生效
特殊含义字符:
f
:将文本对象作为函数的参数t
:将文本对象用html
标签包围- 反向的标签字符会多一个空格
帮助指令
这些指令其实是最重要的……因为自己要从各种README
开始学习。
[spc h spc]
:寻找相关内容在Emacs
配置中的初始函数[spc h f]
:查看Emacs
中的常见问题[spc h l]
:查看layer
的文档[spc h r]
:打开spacemacs
文档中章节[spc h R]
:在所有文档中进行搜索[spc h k]
:展示目前的可用热键
描述功能
[spc h d b]
:描述组合键[spc h d c]
:描述当前选择字符[spc h d f]
:描述函数[spc h d v]
:描述变量[spc h d p/P]
:从Emacs
文档/spacemacs
文档中描述包[spc h d k]
:记录按键并进行描述[spc h d K]
:描述某个快捷键系列[spc h d m]
:查看当前的mode
文件操作
[spc p f]
:在当前工程中查询文件(project find)[spc f f]
:在当前目录下查询文件,使用[C h]
可以跳到上级目录(file find)[spc f L]
:在整个Mac
系统寻找文件(file locate)[spc f h]
:查询文件用二进制打开,使用[C c]
两次可返回正常模式(file hex)[spc f o]
:使用系统默认程序打开文件(file open)[spc f E]
:查询文件sudo
打开进行编辑(file sudo-Edit)[spc f D]
:删除当前的文件和缓冲区(file delete)[spc f j]
:使用Dired
打开当前目录(file jump)[spc f t]
:使用Treemacs
打开当前目录,再次则关闭(file tree)[spc f C-t]
:同上,但是光标保持在当前列表[spc f r]
:打开最近打开过的文件列表(file recent)[spc f R]
:重命名当前文件(file rename)[spc f v]
:为当前目录/文件添加本地变量,会添加当前目录的一个文件(file variable)[spc f y]
:拷贝当前文件路径(file yank)[spc f C u/d]
:将当前文件的编码转化为unix/dos
版本(file convert unix/dos)[spc f e d/i]
:打开"/.spacemacs/init.el"或者"/.emacs.d/init.el"(file emacs dotfile/initfile)[spc f c]
:复制文件另存为(file copy)
Treemacs
Treemacs
是在屏幕左侧出现,便于用户进行文件管理的侧边栏。
节点选择
j/k
:光标下移/上移u
:如果当前树上有选中文件的父节点,则跳转过去h
:将当前树的根节点向上移动一级l
:将当前树的根节点切换到选中文件
节点打开
tab
:展开/闭合目录或者文件return
:展开/闭合目录或者打开文件o h
:水平新建屏幕打开文件,用dired
打开目录o v
:垂直新建屏幕打开文件,用dired
打开目录o x
:根据文件的扩展名使用系统应用打开文件
节点操作
c f
:新建文件c d
:新建目录R
:重命名文件
显示选择
g r
:刷新目录w
:重设宽度y y
:拷贝当前文件路径y r
:拷贝当前根目录路径s
:按照特殊标准重新排列文件
Dired
Dired
可以全屏进行对文件的操作。
访问操作
f
/e
/ret
:访问当前文件o
:在另一个窗体访问当前文件C - o
:在另一个窗体访问当前文件,同时光标保持在原来的窗体v
:只读模式访问当前文件^
:向上一级
标记操作
u
:取消当前标记x
:执行所有标记d
:删除文件
即时操作
+
:创建新的目录g
:刷新目录C
:拷贝D
:删除R
:重命名
缓冲区操作
[spc b .]
:打开缓冲区切换器(buffer micro)[spc b b]
:查询已经打开的缓冲区(buffer buffer)[spc b d]
:关闭当前缓冲区(buffer delete)[spc b C-d]
:关闭匹配正则表达式的所有缓冲区(buffer reg delete)[spc b f]
:在finder
中打开当前文件(buffer finder)[spc b h/s]
:打开spacemacs
的主页缓冲区/scratch
缓冲区(buffer home/scratch)[spc b m]
:删除除了当前缓冲区外的所有缓冲区(buffer murder)[spc b N]
:新建缓冲区(buffer new)[spc b R]
:使用自动备份来还原缓冲区(buffer recover buffer)[spc b w]
:把当前缓冲区变为只读(buffer none-write)[spc tab]
:切换至上一个打开的缓冲区(buffer toggle)
布局操作
[spc l l]
:查询并切换到布局(layout layout)[spc l 1...9]
:跳转到指定布局[spc l n/p]
:切换至上一个/下一个布局(layout next/previous)[spc l L]
:导入布局文件(layout load)[spc l s]
:保存当前布局为一个文件(layout save)[spc l tab]
: 打开上一个布局(layout toggle)[spc l R]
:重命名当前布局(layout rename)
窗体操作
[spc w -]
:下面新建窗体[spc w /]
:右边新建窗体[spc w .]
:进入窗体转换器[spc 1...9]
:光标跳跃到第1-9个窗体[spc w h/j/k/l/tab/W]
:窗体切换(window other)[spc w w]
:切换到另一个窗体[spc H/J/K/L]
:将窗体进行移动[spc w b]
:将光标跳跃到mini-buffer
[spc w =]
:将窗体的宽度和高度等分[spc w m]
:最大化当前窗体(window maximized)[spc w d]
:删除当前窗体(window delete)[spc w u/U]
:窗体的操作撤销/重复(window undo)[spc t g]
:窗体黄金分割(toggle golden ratio)[spc t -]
:光标在窗体中保持中间
工程操作
[spc p f]
:查询并打开工程里的文件(project file)[spc p b]
:查询并打开工程里的缓冲区(project buffer)[spc p p]
:查询并打开工程(project project)[spc p l]
:查询并打开工程,创建新的布局(project layout)[spc s p]
:在该工程中进行字符串搜索
跳跃操作
[spc j j]
:将光标跳跃到屏幕中某个位置,之后输入一个字符作为索引,可以当做拼音,再进行选择[spc j l]
:跳跃到指定一行,根据屏幕进行选择[spc j s/S]
:分割当前括号层级变为两个(分割到另一行)[spc j i]
:打开imenu
,在当前文章中进行段落跳跃
Javascript相关操作
[spc t s]
:允许/禁止flycheck
进行语法检查(默认使用eslint
)[spc t t]
:显示/隐藏flycheck
语法检查错误的缓冲区
Ctags相关操作
[g ]]
:使用etags
查找当前tag
内置应用操作
博客操作
[spc a b]
:使用blog-admin
打开我的博客
Emoji操作
[spc a E]
:打开插入Emoji
的缓冲区,回车进行拷贝,q
退出[spc i e]
:使用Helm
来插入Emoji
印象笔记操作
安装
spacemacs
的evernote-layer
,再在本地安装geeknote
,把配置里面的服务器地址从www.evernote.com
改成app.yinxiang.com
即可
[spc a e c]
:创建新笔记,使用@
指定笔记本,使用#
指定标签[spc a e f]
:查找笔记(通过标题和内容),在结果的缓冲区可以使用下面四个指令加上结果中的序号作为参数[spc a e e]
:编辑指定名称的笔记[spc a e s]
:只读预览指定名称的笔记[spc a e r]
:删除指定名称的笔记[spc a e m]
:移动指定名称的笔记到别的笔记本
进入笔记缓冲区后,可以使用markdown
语法进行编辑,保存后将会更新笔记到印象笔记,完成编辑后使用[C-x #]
来结束编辑。