Skip to content

3badguys/.emacs.d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Emacs介绍及配置

介绍

Emacs 于 1975 年诞生在 MIT 人工智能实验室,由 Richard Stallman 开发。

Emacs 架构:

  • 底层:用 C 语言完成与系统交互和展示部分,并实现了一个 Lisp 解析器
  • 上层:通过 Emacs Lisp 不断扩展自身,其实 Emacs 中绝大多数的操作都是在调用 Emacs Lisp

使用

$ emacs -nw # 以no window的方式运行

使用的插件

(defun print-elements-of-list (list)
  "Print each element of LIST on a line of its own."
  (while list
    (print (car list))
    (setq list (cdr list))))

(print-elements-of-list 3badguys-emacs/packages)

按键映射

符号
CCtrl
MAlt
SShift

常用快捷键

基本操作

快捷键描述
C-x C-f打开文件
C-x C c关闭emacs
C-x C-s保存文件
C-x C-b查看buffer列表
C-x C-r查看最近打开文件
C-x d调用dired来打开文件
C-j在Minibuffer中相当于回车作用
C-x C-q开启或关闭只读模式

执行命令

快捷键描述
M-x执行命令
M-x eval-region执行选中区域的内容
M-x eval-buffer执行buffer内的内容
C-g退出命令执行

光标操作

快捷键描述
C-n跳转到下一行
C-p跳转到上一行
C-f向前跳转一个字符
C-b向后跳转一个字符
M-f向前跳转一句
M-b向后跳转一句
C-d删除当前字符
C-a跳转到行首
C-e跳转到行末
M-<跳转到文档头部
M->跳转到文档尾部
C-v向下翻页
M-v向上翻页
M-g M-g调到指定行

块编辑

快捷键描述
C-x r k剪切矩形块
C-x r y粘贴矩形块
C-x r o插入矩形块
C-x r c清除矩形块
C-x r t在选定区域所有列前插入字符

PS:以上快捷键均在C-SPE选中区域后操作

复制粘贴

快捷键描述
C-SPE选中
C-w剪切
M-w复制
C-y粘贴

撤销操作

快捷键描述
C-/撤销(推荐用这个)
C-_撤销
C-x u撤销

查找

快捷键描述
M-x list-matching-lines查找当前文件内容
M-x grep rgrep lgrep grep-find调用grep查找文件内容
M-x project-find-file项目范围内查找文件
C-s通过isearch查找内容
C-r通过isearch反向查找内容
M-x bookmark-set添加当前文件到书签
M-x list-bookmark查看书签列表

符号高亮

快捷键描述
<f7>光标处自动高亮,不固定
<f8>光标处固定高亮
<f9>删除所有固定的高亮
M-n跳转到下一处高亮
M-p跳转到上一处高亮

多窗口操作

快捷键操作
C-x 1只保留当前窗口
C-x 2水平切分窗口
C-x 3竖直切分窗口
C-x o按顺序跳转到其他窗口

小技巧

快捷键描述
M-^将当前行内容合并到上一行

帮助

快捷键描述
C-h b查看快捷键绑定列表
C-h f对函数的描述
C-h v对变量的描述
C-h k对快捷键的描述
M-x find-function跳转到函数定义
M-x find-variable跳转到变量定义
M-x find-function-on-key跳转到快捷键定义

dired相关

常用快捷键

快捷键描述
Enter打开文件或文件夹
q关闭buffer
g刷新buffer
^返回上一层目录
>下一个文件夹
<上一个文件夹
C拷贝文件
R重命名文件或移动文件
D立即删除文件或文件夹
d加上待删除标志D
m标志文件
%m使用正则表达式标志
u取消标志
U取消所有标志
xC/D/R标志命令的执行
s按时间排序
v只读模式
f文本编辑模式
+新增文件夹
Z压缩和解压缩
S链接
=比较文件diff

org相关

标题

快捷键描述
Tab光标所在标题展开或关闭
S-Tab展开所有标题或关闭(感觉跟系统的快捷键冲突了)
C-c C-n/p上下标题跳转
C-c C-f/b上下标题跳转,仅同一标题
C-c C-u跳转到上一级标题
C-c C-j跳转到下一级标题

字体设置

符号描述
粗体粗体
斜体 Italics斜体(中文显示不斜,是因为没有斜体的字符)
删除线删除线
下划线下划线

列表

无序列表

  • treeroot
    • branch2
    • branch1

有序列表

  1. [-] 任务1 [33%]
    1. [ ] 子任务1
    2. [X] 子任务2
    3. [ ] 子任务3
  2. [ ] 任务2

表格

快捷键描述
C-c <竖线>创建表格
Tab移动到下一个区域,必要时(行尾)创建一行
C-c C-c调整表格对齐
C-u C-c C-c强制为表格进行公式计算
M-<left/right>将当前行向左/右移
M-<up/down>将当前行向上/下移
M-S-<left/right>删除/插入列
M-S-<up/down>删除/插入行
C-c -插入水平分割线
C-c Ret插入水平分割线并调到下一行
输入”<竖线>”然后Tab对齐产生表格
输入”<竖线>-“然后Tab对齐插入水平分割线

代办事项(TODO),标签(Tags)

快捷健

快捷键描述
C-c C-t变换TODO状态
C-c / t以树的形式展示所有的TODO
M-s-RET插入同级TODO标签
C-c ,设置TODO优先级[#A-C]
C-c C-q为标题添加标签:tag:
C-c / m显示标签

例子

[#A] 任务1

[#B] 任务2

总任务 [33%]

子任务1
子任务2 [33%]
  • [-] subsub1 [0/0]
  • [ ] subsub2
  • [X] subsub3
一个已完成的任务

时间

快捷键

快捷键描述
C-c .插入时间
C-c C-s计划时间(SCHEDULED)
C-c C-d截止时间(DEADLINE)

例子

<2019-02-17 日>

插入源代码

快捷键

快捷键描述
“<s” Tab嵌入代码,指定语言
C-c C-c对当前代码块求值,结果显示#RESULTS:

例子

(+ 1 2 3 4)
#include <stdio.h>
int main(void) {
  printf("Hello world!\n");
  return 0;
}

导出

快捷键描述
C-c C-e导出

链接

快捷键描述
C-c C-l编辑链接
C-c C-o打开链接

About

The personal configuration of emacs.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published