我的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 #]来结束编辑。
