emacs学习
目录
[TOC]
简介
Emacs其实是个Lisp的解释器,因此可以用Lisp灵活地扩展。渐渐地人们不再限于用Emacs写程序,写文档,面且在Emacs里管理文件系统、运行终端、收邮件、上网、听音乐等。
正是因为Emacs具有无限的可扩展性,人们才分不清Emace到底是不是一个编辑器。但就是有人喜欢这种All-in-One的哲学,喜欢在Emacs中完成每件事。
- WebKit浏览器
能在Eacs中边写代码,边通过浏览器查阅各种资料。Dired 文件管理器,是具有键盘风格的文件管理功能,Dired有内置的标记、搜索、文本编辑模式等强大功能。
- 0rg任务时间管理工具
可以基于文本式对项目进行管理和时间追踪,虽然是纯文本,但是能轻松嵌人多媒体,外部链接,电子表格等强大工具。
- 聊天通讯软件
它强大到拥有 IRC 聊天功能,能自动回复,自动翻译,其至是语音读出朋友的消息,通过简单的扩展还能轻松支持XMPP协议和其他软件聊天(比如gtalk)。将新闻阅读器,RSS,Atom格式新闻尽收眼底,不用为了看新闻来回切换窗口。
4.终端模拟器
再也不用在缩写代码的时候切换到外部终端中看输出结果,甚至可以在终端模拟器中嵌入ⅵ,或者在终端中再嵌入Emacs,然后在Emace中打开终端再嵌Emacs。
5.Gnus
拥有统一的阅读邮件和邮件列表的工具Gnus,Gnus基于线索式的邮件管理随时保持清新的上下文来回复好友邮件。
6.数学计算器
Emacs中从基本的计算器到高级的数学公式演算应有尽有,甚至能实时输出3D 演算结果
7.翻译软件
所有Emace可以访问到的单词和语句,都可以快速地被翻译成用户的母语。通过lestival或者其他发音引擎,语音朗读可以自由地朗读Emacs可以看到的任何数据,用户可以边写程序边听IRC聊天
windows安装
-
下载 到这个网址可以下载到Emacs的windows版本:ftp.gnu.org/pub/gnu/ema… 只需要一个压缩文档,如emacs-23.2-bin-i386.zip 安装 在D盘根目录下新建一个文件夹,取名Emacs23.2(也可以是其他路径,随个人喜好而定),将emacs-23.2-bin- i386.zip里的文件解压到这个目录下,这样在d:\Emacs23.2\下就有bin, tec, info, leim, lisp, site-lisp等目录。
-
双击bin文件夹里的addpm.exe进行安装,安装后将在开始菜单生成Gnu Emacs\Emacs链接,点击这个链接便可启动Emacs。也可以双击bin文件夹里的runemacs.exe启动。注意到bin目录里还有个文件 是emacs.exe,双击它也可以启动,但是会出现一个控制台窗口。
-
修改注册表 打开注册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs(如果没有则手动添加项), 在此项下添加字符串值,名称为HOME,值为D:\Emacs23.2。这样做的目的是让D:\Emacs23.2成为Emacs的home路径(传说中 的home path,以后你将会经常看到“home目录”、“home directory”等等)。
-
创建.emacs.d目录和.emacs文件 相信.emacs.d目录和.emacs文件是困扰大家很久的问题了,其实有个简单的办法 可以解决此问题。启动emacs(注:win7系统需要右键“以管理员身份运行”),用鼠标点击Options菜单,随便点击一两个选项,比如点击一下Active Region Highlighting,然后点击Save Options。先不要担心你会破坏了什么东西,这样做的目的是让emacs自动创建.emacs.d目录以及.emacs文件!观察你的Emacs窗口 最后一行,是否显示“Wrote D:/Emacs23.2/.emacs”?如果是的话就对了,当你选择Save Options的时候,Emacs会在home路径下产生.emacs文件,并把配置信息写进这个文件。D:\Emacs23.2\目录下将会产生这两个文件。(注:windows环境可将".emacs"改为"_emacs")
我的位置是在C:\Users\Administrator\AppData\Roaming这个文件夹下面,是.emacs文件
linux下安装emacs
2039 2020-07-28 14:42:49 cd root
2040 2020-07-28 14:42:51 ls
2041 2020-07-28 14:42:57 mkdir emacs
2042 2020-07-28 14:43:01 cd emacs
## 下载emacs包
2043 2020-07-28 14:43:10 wget http://ftp.gnu.org/gnu/emacs/emacs-26.3.tar.xz
2044 2020-07-28 15:48:32 ls
2045 2020-07-28 15:49:14 xz -d emacs-26.3.tar.xz
2046 2020-07-28 15:49:21 ls
2047 2020-07-28 15:49:27 tar xf emacs-26.3.tar.xz
2048 2020-07-28 15:49:29 tar xf emacs-26.3.tar
2049 2020-07-28 15:49:36 cd emacs-26.3.tar.xz
2050 2020-07-28 15:49:42 cd emacs-26.3
2051 2020-07-28 15:49:44 ls
2052 2020-07-28 15:50:40 sudo ./configure -prefix=/usr/local -with-x-toolkit=gtk
## 安装显示缺少 gnutlsz* 组件
2053 2020-07-28 15:51:15 yum list gnutls*
2054 2020-07-28 15:51:28 yum install gnutls
2055 2020-07-28 15:52:08 sudo ./configure -prefix=/usr/local -with-x-toolkit=gtk
2056 2020-07-28 15:52:43 sudo ./configure -prefix=/usr/local -with-x-toolkit=gtk --with-gnutls=no
2057 2020-07-28 15:53:47 make$make install
## 进入emacs的介绍
2058 2020-07-28 15:57:16 src/emacs -q
## 查看版本信息
emacs --version
emacs的使用
因为 Control 键在 Emacs 中极为常用,所以为了更方便地使用 Emacs 的键位修改,需要 对其做出修改。建议将大写锁定键(Caps Lock)替换为 Control 键。这里是一个可以参考 的把大写锁定键替换为 Control 键的教程:移动 Control 键 (Moving The Ctrl Key)。如 果这个的教程不适用于你的操作系统,请自行搜索其它的修改方式。
常见符号所代表的意义如下
| 符号 | 按键 |
|---|---|
| C | Ctrl |
| RET | Enter |
| M | ALT(或者说是ESC) |
光标的移动是编辑器中最常用的操作所以必须熟知。
光标移动
-
C-f为前移一个字符,f代表 forward.M-F往前挪动一个单词 -
C-b为后移一个字符,b代表 backward。 -
C-p为上移至前一行,p代表 previous。 -
C-n为上移至下一行,n代表 next。 -
C-a为移至行首,a代表 ahead。 -
C-e为移至行尾,e代表 end。 -
C-v查看下一屏,M-v查看上一屏幕 -
C-s是向前搜索C-r是向后搜索,按return可以结束搜索, 搜索接下去的字符,通过C-g终止搜索 -
C-l是光标强制到页面的中间位置 -
M-<(meta小于号),可以把光标移动到文字的最前方M->,可以把光标移动到文字的最后方 -
C-u 8 C-f向前移动8个字符,C-u 可以和任何搭配,添加数字指令,但是C-v是意外,你给它添加数字指令,他不是切换屏数,而是切换行数删除
-
<DEL>删除光标前的一个字符 -
C-d删除光标后的一个字符 -
M-<DEL>移除光标前的一个词 -
M-d移除光标后的一个词 -
C-k移除从光标到“行尾”间的字符 -
M-k移除从光标到“句尾”间的字撤销
-
C-/会消除一个命令 -
C-x u是撤销之前动作的意思文件搜索
-
c-x c-f查看目前的HOME目录,即可看到.emacs文件 -
C-x C-s为保存当前缓冲区(Buffer),s代表 save
常用的文件操作快捷键组合也必须熟记。
C-x 是 Emacs 的快捷键中常用的前缀命令。这些前缀命令常常代表了一系列有关联的指 令,十分重要,请特别牢记。其它常见的还有 C-c, C-h 。打断组合键为 C-g ,它 用于终端取消之前的指令。快捷键就是用预先绑定好的方式告诉 Emacs 去执行指定的命令。
窗口
- C-x 0:关闭当前窗口
- C-x 1:关闭当前窗口以为的其他窗口
- C-x 2:水平分割窗口
- C-x 3:垂直分割窗口
- C-x 4 0:关闭当前窗口和缓冲
- C-x 4 b:在另一窗口打开缓冲(如果当前只有一个窗口将分割一个新窗口)
- C-x 4 f:在另一窗口打开文件(…同上)
- C-x o:在多个窗口中循环切换。
- C-x b:选择缓冲区。命令输入后再输入缓冲区名称,可以用tab补全
C-x C-b列出缓冲区,C-x b “缓冲区名字”切换缓冲区
其他功能键
| C-x C-f | 打开或者新建 |
|---|---|
| C-x C-s | 保存当前文档,类似word中c-s |
| C-x C-c | 关闭emacs |
| C-c C-t | 打开TODO模式 |
| C-c C-e h h/o | 导出html文件。我一般最后一个用o,可以直接打开生成的html |
| C-x u | 神器撤销,就是word里的c-z |
| C-w | 剪切 |
| C-y | 粘贴 |
| M-w | 复制,貌似windows下用不了,好像和QQ什么东西冲突了,所以用剪切代替了 |
| M-y | 切换粘贴。emacs下你每次复制的东西都在,用这个可以粘贴之前复制的东西 |
| C-@ | mark当前位置。比如选中一段话,我们一般用鼠标选中,用这个,在你要选的文字前mark一下,光标移到结尾。这段话被选中了。 |
| C-x b | 切换buffer,类似windows下的M-TAB |
| C-x C-b | list当前所有的buffer |
| TAB | 展开或者收齐当前标题 |
内置功能
Emacs 功能强大,但是部分功能默认情况下并未开启。下面就有几个例子,
编辑器内显示行号可使用 M-x linum-mode 来开启。
获取帮助
Emacs 是一个富文档编辑器(Self document, extensible editor)而下面的三种方法在学 习 Emacs 的过程中也非常重要。他们分别是,
C-h k寻找快捷键的帮助信息C-h v寻找变量的帮助信息C-h f寻找函数的帮助信息
学习基础Elisp
;; 2 + 2
(+ 2 2)
;; 2 + 3 * 4
(+ 2 (* 3 4))
;; 定义变量
(setq name "username")
(message name) ; -> "username"
;; 定义函数
(defun func ()
(message "Hello, %s" name))
;; 执行函数
(func) ; -> Hello, username
;; 设置快捷键
(global-set-key (kbd "<f1>") 'func)
;; 使函数可直接被调用可添加 (interactive)
(defun func ()
(interactive)
(message "Hello, %s" name))
执行语句
- 在某条语句后面按C-x C-e (eval-last-sexp)可以执行那条语句
- M-x eval-buffer 可以执行当前buffer内的Elisp代码
- 选中一个region后, M-x eval-region可以执行这个region内的代码
插件管理
emacs中的package包管理插件非常方便,首先添加以下代码到.emacs中,然后M-x package-list-packages打开包管理。
我们还可以通过外部插件进行美化,进行美化之前我们需要配置插件的源(默认的源非常有限),最常使用的是 MELPA (Milkypostman's Emacs Lisp Package Archive)。它有非常多的插件(3000 多个插件)。 一个插件下载的次数多并不能说明它非常有用,也许这个插件是其他的插件的依赖。在这里 你可以找到其安装使用方法。添加源后,我们就可以使用 M-x package-list-packages 来查看所有 MELPA 上的插件了。在表单中可以使用 I 来标记安装 D 来标记删除, U 来更新,并用 X 来确认。你可以直接将下面的代码复制到你的配置文件顶端,从而直接使用 Melpa 作为插件的源。 你可以将你需要的插件名字写在 my/packages 中,Emacs 在启动时会自动下载未被安装 的插件。
(when (>= emacs-major-version 24)
(require 'package)
(package-initialize)
(setq package-archives '(("gnu" . "http://elpa.emacs-china.org/gnu/")
("melpa" . "http://elpa.emacs-china.org/melpa/"))))
;; 注意 elpa.emacs-china.org 是 Emacs China 中文社区在国内搭建的一个 ELPA 镜像
;; cl - Common Lisp Extension
(require 'cl)
;; Add Packages
(defvar my/packages '(
;; --- Auto-completion ---
company
;; --- Better Editor ---
hungry-delete
swiper
counsel
smartparens
;; --- Major Mode ---
js2-mode
;; --- Minor Mode ---
nodejs-repl
exec-path-from-shell
;; --- Themes ---
monokai-theme
;; solarized-theme
) "Default packages")
(setq package-selected-packages my/packages)
(defun my/packages-installed-p ()
(loop for pkg in my/packages
when (not (package-installed-p pkg)) do (return nil)
finally (return t)))
(unless (my/packages-installed-p)
(message "%s" "Refreshing package database...")
(package-refresh-contents)
(dolist (pkg my/packages)
(when (not (package-installed-p pkg))
(package-install pkg))))
;; Find Executable Path on OS X
(when (memq window-system '(mac ns))
(exec-path-from-shell-initialize))
安装主题
(add-to-list 'my/packages 'monokai-theme)
然后使用下面的配置使其每次打开编辑器时加载主题,
(load-theme 'monokai 1)
ORG.MODEL使用
章节
org-mode用* 标识章节,一个* 代表一级标题,两个* 代表两级标题,以此类推。
在Emacs中输入以下内容:
* 标题一
** 标题二
注意型号后面有空格。可以发现,不同层级标题的颜色是不一样的。按Alt加左右键能够升降标题的层级。一些常用快捷键如下:
S+Tab展开、折叠所有章节Tab对光标所在章节进行展开、折叠M+left/right升级/降级标题
表格
列表是文本中一个比较常用的元素,可以列出各种待完成的事项等。org-mode提供了一种很独特的功能,可以加入checkbok(实际就是加入一对中间有空格的方括号[ ])标记任务的完成状况,而且如果一个总任务有多个子任务,还可以根据子任务的完成情况计算总进度(只需要在总任务后面添加一对方括号,里面加上%或/ 如[%],[/])。列表分为有序和无序两种,有序列表以1.或 1)开头,无序列表以+或-开头 后面,同样,后面要跟一个空格。 我们输入一个无序列表:
+ treeroot
+ branch1
+ branch2
在输入的时候,我们按M-RET(Alt+回车)可以自动输入同级的条目,按M+left/right调整层级。同理,我们还可以输入一个有序列表:
1) [-] 任务1 [33%]
1) [ ] 子任务1
2) [X] 子任务2
3) [ ] 子任务3
2) [ ] 任务2
我们按M-S-RET 可以输入一个带checkbox的列表项,而在总任务后面可以输入一个[%]或者[/]则能自动计算总任务进度。最后结果如图所示。
常用快捷键: - M-RET 插入同级列表项 - M-S-RET 插入有 checkbox的同级列表项 - C-c C-c 改变 checkbox状态 - M-left/right 改变列表项层级关系 - M-up/dowm 上下移动列表项
脚注
用[fn:1]的方式插入脚注,而在最下面插入
[fn:1]本文参考自http://orgmode.org/orgguide.pdf
这个标签是可以点击的。
表格
表格常用于数据展示,org-mode提供了方便的列表操作。其中最独特的是支持类似于Excel的表格函数,可以完成简单的求和等操作 创建表格时,在新建表格时,首先输入表头:
input | Name | Phone | sub1 | sub2 | total |
|-
然后在第二行后面按 tab,表格就会自动生成:
| Name | Phone | sub1 | sub2 | total |
|---------+--------+------+------+-------|
| | | | | |
下面我们填入一些数据,在填写的过程中,按Tab键可以调到右方表格,按Enter则能跳到下方表格。如果同时按住Shift,则是反方向跳。输入表格完成后,按 C-c C-c则能自动对齐表格,出入完成对齐后,表格如下:
| Name | Phone | sub1 | sub2 | total |
|-------------+--------+------+------+-------|
| maple | 134... | 89 | 98 | |
| wizard | 152... | 78 | 65 | |
| Hello World | 123... | 76 | 87 | |
| hehe | 157... | 87 | 78 | |
下面我们来体验下org-mode的强大的表格函数。我们在total列任选一个位置,输入=$3+$4 ,然后按C-u C-c C-c ,org-mode便能自动为我们计算所有三列加四列的和,并放到第五列。最后完成的表格如下
| Name | Phone | sub1 | sub2 | total |
|-------------+--------+------+------+-------|
| maple | 134... | 89 | 98 | 187 |
| wizard | 152... | 78 | 65 | 143 |
| Hello World | 123... | 76 | 87 | 163 |
| hehe | 157... | 87 | 78 | 165 |
# +TBLFM: $5=$3+$4
如果要插入行和列,可在表头添加一个标签或者新起一行,输入|再调整格式即可。其中最后一行是ogr-mode自动添加的。一些快捷键如下:
C-c |通过输入大小的方式插入表格C-c C-c对齐表格Tab调到右边一个表格enter跳到下方的表格M-up/right/left/right上下左右移动行(列)M-S-up/right/left/right向上下左右插入行(列)
链接
链接用于链接一些资源地址,如图片、文件、URL等。 链接的格式是:
[[链接地址][链接内容]]
如:
[[http://orgmode.org/orgguide.pdf][grgguid.pdf]]]
[[file:/home/maple/图片/test.jpg][a picture]]
如果去掉标签,则能直接显示图片:
[[file:/home/maple/图片/test.jpg]]
直接显示的图片在Emacs里默认不显示,需按C-c C-x C-v才能显示,在输出成其他格式(html、pdf……)后也能看到。 常用快捷键: - C-c C-x C-v 直接预览图片。
待办事项(TODO)
TODO是org-mode最具特色的一个功能,也是org-mode设计的初衷,org-mode的作者本意是用其来完成一个个人时间管理程序(GDT)。因此,可以用org-mode来做一个个人时间管理工具! 下面我们来看怎么写TODO。TODO 也是一类标题,因此也需要用*开头,在Emacs中输入:
** TODO 洗衣服
可以看到当中的TODO变成了红色,我们讲光标移到该行,按C-c C-t,则发现TODO变成了DONE(这个序列可以自己定义,详见org-mode手册)。org-mode兼有了标题和列表的功能,也可以添加checkbox和完成进度,除此之外,还可以设计优先级。 我们输入:
*** TODO [# A] 任务1
*** TODO [# B] 任务2
*** TODO 总任务 [33%]
**** TODO 子任务1
**** TODO 子任务2 [0%]
- [-] subsub1 [1/2]
- [ ] subsub2
- [X] subsub3
**** DONE 一个已完成的任务
一些常用操作如下: - C-c C-t 变换TODO的状态 - C-c / t以树的形式展示所有的 TODO - C-c C-c 改变 checkbox状态 - C-c, 设置优先级(方括号里的ABC) - M-S-RET 插入同级TODO标签
标签Tags
在org-mode中,可以给每一章节添加一个标签,我们可以通过树的结构来查看所有带标签的章节。在每一节中,子标题的标签会继承父标题标签。 输入:
*** 章标题 :work:learn:
**** 节标题1 :fly:plane:
**** 节标题2 :car:run:
一些常用命令如下: - `C-c C-q` 为标题添加标签 - `C-c / m` 生成带标签的树
时间
org-mode可以利用Emacs的时间空间插入当前时间。 输入C-c . 会出现一个日历,我们点选相应的时间即可插入。
<2015-02-17 二>
时间前可以加DEADLINE:和SCHEDULED:表示时间的类型如:
DEADLINE:<2015-02-12 四>
下面给出一个常见的TODO标签的模板:
*** TODO 洗衣服
SCHEDULED: <2015-02-19 四>
DEADLINE: <2015-03-01 日>
常用命令如下: - C-c .插入时间
一些特殊文本格式
和其他标记语言一样,org-mode也支持各种特殊文本格式(如斜体、下划线等)。如下所示:
*bold*
/italic/
_underlined_
=code=
~verbatim~
+strike-through+
富文本导出
org-mode的强大之处还在于它能到出成各种不同的格式,例如html、pdf等,在导出时,可以加入一些说明符号,来制定导出选项,常用导出符号如下:
设置标题和目录:
# +TITLE: This is the title of the document
# +OPTIONS: toc:2 (only to two levels in TOC)
# +OPTIONS: toc:nil (no TOC at all)
添加引用:
# +BEGIN_QUOTE
Everything should be made as simple as possible,
but not any simpler -- Albert Einstein
# +END_QUOTE
设置居中:
# +BEGIN_CENTER
Everything should be made as simple as possible,but not any simpler
# +END_CENTER
设置样例(在这里面的内容将会被直接输出,不会被转义)
# +BEGIN_EXAMPLE
这里面的字符不会被转义
# +END_EXAMPLE
注释,这些内容不会被导出
注释的用法# this is comment
# +BEGIN_COMMENT
这里的注释不会被导出
# +END_COMMENT
Latex使用,org-mode能支持直接输入LaTeX,在导出后LaTeX能被正确解释:
[\begin{equation} \nabla^2 x=\int_\Omega \frac{a}{\log{b} } \sum^n_{i=1} a_i d\Omega \end{equation}]
插入源代码
org-mode除了可以直接插入源代码之外,可以直接求出运行结果,这也是其强大之处,在使用之前,需要在.emacs配置文件中设置加载的运行语言:
(org-babel-do-load-languages
'org-babel-load-languages
'(
(sh . t)
(python . t)
(R . t)
(ruby . t)
(ditaa . t)
(dot . t)
(octave . t)
(sqlite . t)
(perl . t)
(C . t)
))
可以先测试一下python,先在.elisp文件中添加配置文件
(org-babel-do-load-languages
'org-babel-load-languages
'((python . t)))
在org文件中运行
#+BEGIN_SRC python :results output
import sys
print sys.version
print sys.prefix
#+END_SRC
输出的结果是
设置好之后输入:
# +BEGIN_SRC emacs-lisp
(+ 1 2 3 4)
# +END_SRC
将光标移到代码块内,按C-c C-c,org-mode会自动添加如下一行:
# +RESULTS:
: 10
这正是该代码的计算结果。下面试一试Python代码:
# +BEGIN_SRC python :results output
a = 1+1
print a
# +END_SRC
# +RESULTS:
: 2
下面测试一下C语言
# +begin_src C++ :includes <stdio.h>
int a=1;
int b=1;
printf("%d\n", a+b);
# +end_src
# +RESULTS:
: 2
生成快捷键
<s + TAB` 可以直接生成 `#+BEGIN_SRC`
`<e + TAB` 可以直接生成 `#+BEGIN_EXAMPLE`
`<l + TAB` 可以直接生成 `#+BEGIN_EXPORT latex
其他以此类推。。。
常用快捷键: - C-c C-c 对当前代码块求值
关于导出
org-mode导出pdf需要LaTeX支持,而导出html很方便,但是导出的html美柚任何样式,org-mode为每个模块都添加了css的标签,我们可以将现成的css文件直接加入,便能得到一个好看的输出样式了:
在头部加入
# +HTML_HEAD: <link rel="stylesheet" type="text/css" href="style1.css" />
该代码加载我们的css。下面我们来将我们的文件导出成html。按C-c C-e会出现一个如图的提示框,问我们导出那种格式,我们选h导出html。
magit插件使用
Magit is an interface to the version control system Git, implemented as an Emacs package. Magit aspires to be a complete Git porcelain. While we cannot (yet) claim that Magit wraps and improves upon each and every Git command, it is complete enough to allow even experienced Git users to perform almost all of their daily version control tasks directly from within Emacs. While many fine Git clients exist, only Magit and Git itself deserve to be called porcelains.magit官网
使用emacs阅读编辑代码,使用其magit-mode来进行Git管理。这里简单介绍一些操作:
emacs编辑状态时,输入M-x: magit-status,进入magit管理界面,以下是一些操作
TAB magit-toggle-section
RET magit-visit-item
C-w magit-copy-item-as-kill
C-x Prefix Command
ESC Prefix Command
SPC magit-show-item-or-scroll-up
! magit-key-mode-popup-running
$ magit-display-process
\+ magit-diff-larger-hunks
\- magit-diff-smaller-hunks
. magit-mark-item
0 magit-diff-default-hunks
1 magit-show-level-1
2 magit-show-level-2
3 magit-show-level-3
4 magit-show-level-4
: magit-git-command
= magit-diff-with-mark
? magit-describe-item
A magit-cherry-pick-item
B magit-key-mode-popup-bisecting
C magit-add-log
D magit-diff
E magit-interactive-rebase
F magit-key-mode-popup-pulling
G magit-refresh-all
I magit-ignore-item-locally
L magit-add-change-log-entry-no-option
M magit-key-mode-popup-remoting
P magit-key-mode-popup-pushing
R magit-rebase-step
S magit-stage-all
U magit-unstage-all
X magit-reset-working-tree
^ magit-goto-parent-section
a magit-apply-item
b magit-key-mode-popup-branching
c magit-log-edit
d magit-diff-working-tree
e magit-ediff
f magit-key-mode-popup-fetching
g magit-refresh
h magit-toggle-diff-refine-hunk
i magit-ignore-item
k magit-discard-item
l magit-key-mode-popup-logging
m magit-key-mode-popup-merging
n magit-goto-next-section
o magit-key-mode-popup-submodule
p magit-goto-previous-section
q magit-quit-session
r magit-key-mode-popup-rewriting
s magit-stage-item
t magit-key-mode-popup-tagging
u magit-unstage-item
v magit-revert-item
w magit-wazzup
x magit-reset-head
z magit-key-mode-popup-stashing
DEL magit-show-item-or-scroll-down
SQL-MODE
首先在配置文件中添加支持,(require ob-sql),然后在org文件中使用:
this is a connection
:PROPERTIES:
:header-args:sql: :engine mysql :dbhost 127.0.0.1 :database demo :dbuser user :dbpassword password
:END:
#+BEGIN_SRC sql
SELECT 1 + 1;
#+END_SRC