当前位置: 首页 > 工具软件 > GNU ed > 使用案例 >

notes Cameron-学习GNU Emacs 2ed

洪鸿博
2023-12-01

1 emcas的基本概念

emacs简介 17

暂无

理解文件与编辑缓冲区 19

暂无

编辑模式 20

暂无

启动emacs 22

暂无

emacs的编辑画面 23

暂无

emacs命令 26

x技巧:使用下拉菜单 27
暂无

使用基于文本的菜单 27

esc `

打开一个文件 29

cxcf1,打开文件1 29

如果读入了错误的文件 30
cxcf1 cxcv 2 cxcb,用文件2替换文件1 30

Emacs的名称自动补足功能 30
cxcf <tab>

插入和追加文件 32
cxcf1 a cxcs cxi 1,插入文件1内容到文件1的缓冲区 32

Emacs如何确定默认目录 32
cxcf /etc/profile cxcf

保存文件 33

cxcf 1 cxcs

退出emcas 34

cxcc

获取帮助

启动emacs教程 34
cht

查看按键组合含义 35
chk chk

2 文件编辑

光标的移动 42

右左下上字符 42
cht cfcbcncp

移动光标的其他方法 43
行尾行首
cht ceca
右左单词 43
cht mfmb
右左句子 43
cht mema
右左段落 43
cht m}m}m{

把光标一次移过一个或者多个屏显画面 45
下上页 45
cht mvcv
文尾文首 45
cht m>m<

x技巧:使用卷屏条 45
cht 向下拖动卷屏条

命令的重复执行 46
右2次字符 46
cht c2cf
右2次单词 46
cht m2mf
右4次字符右16次字符 46
cht cucf cucucf

重新绘制屏显画面 46
未测试

Emacs命令与你的键盘 48
暂无

文本的删除 48

撤销操作 48
cht cd cxu
右左删除字符 49
cht cd ce <bs>
右左删除单词 49
cht md ce m<bs>
右删除光标到行尾和换行符,区别于句 50
cht mf ckck
右左删除句子 52
cht mk ce cx<bs>
删除文本块 52
cht c<sp> cncn cw

恢复已删除的文本 50
cht ckck cy,恢复ck删除的文本 50

文本块及其编辑操作 53

cht c<sp> cn cwcy,删除文本块,也能实现 52
cht c<sp> cn cxcxcxcx,切换光标为块首和块尾后一字符 53

x技巧:用鼠标标记文本块 56
cht 双击鼠标左键到行尾

文本的复制 56
cht c<sp> mf mw cy,文本复制 56

恢复早先的删除操作 58
cht ce c<bs>c<bs> cymy
chv kill-ring-max,显示删除环kill ring的大小 58

文本块选取与粘贴 58
暂无

段落重排 59

cht c6cn mq

编辑技巧和快捷键 61

交换位置 61
交换字符 61
cht cfct
交换单词 61
cht mtmt
交换行 61
cht cxct cxct

改变字母的大小写 62
右大写单词 62
cht mu
右大写单词首字母 62
cht mc

文本的改写模式 63
cht <ins>

命令的中止和修改的撤销 63

命令的中止 64
mx cg

修改的撤销 64
cht md cxu

用文件内容取代编辑缓冲区中的内容 65
cxcf1 m111a mx revert-buffer

返回文件某个以前的版本:备份文件 ~ 65

echo 1 > 1~
emacs 1~

cxcw 1

恢复丢失的编辑修改 # 66

emacs
cxcf 1
1 cxcs
1 cxcc n yes

emacs
cxcf
mx recover-this-file yes

对emcas进行定制 67

google emacs 重新 加载 .emacs 配置
http://ann77.emacser.com/Emacs/EmacsDotEmacsWithoutRestart.html
M-x load-file ~/.emacs
M-x eval-buffer
google echo elisp
http://stackoverflow.com/questions/2170528/writing-hello-world-in-emacs
(princ “Hello world! I’m writing to STDOUT but I’m not in quotes!”)
(message “Hello, %s!” “message to stderr”)

cxcf ~/.emacs
m>
(message "m Hello world!")
(print "p Hello world!")
mx load-file ~/.emacs
mx eval-buffer
cxb Message

自动启用文本模式和自动换行模式 69
google emacs 查看 当前 模式
https://www.douban.com/group/topic/34937003/
c-h m

(setq default-majoy-mode 'text-mode)
(add-hook 'text-mode-hook 'turn-on-auto-fill)

未测试

自动启用临时标记模式 69

(setq-default transient-mark-mode t)
chv transient-mark-mode

sum:emacs 25 默认为t

解决流控制问题 69

(enable-flow-control)

terminal和gui测试,未填加没问题

重新绑定键盘按键 69

(global-unset-key "\e\e")

测试结果 esc esc is undefined
sum:意义不大,会影响cht功能

在线帮助功能方面的问题 70

(define-key global-map "\C-x?" 'help-command)

sum:可以不用

关闭按键提示功能 71
暂无

疑难解答 72
暂无

3 查找和替换

查找操作 73

递增查找 75
cht cs emacs cs cr,右左查找,非正则 75
cht cs to cs cw cs,右递增单词查找,非正则 78

简单查找 78

cht cs<cr> emacs <cr>
cs<cr><cr>

单词查找 79
google emacs word search https://www.gnu.org/software/emacs/manual/html_node/emacs/Word-Search.html msw
cht msw we ll

查找和替换操作 80

基本查找与替换操作 80
cht mx replace-string emacs vim,查找替换,但会替换为Vim,参考case-replace变量 80

查找替换操作 81
cht m% emacs vim yn,.,替换下一个、不替换下一个、替换并显示情况、替换并退出 82
cht m% emacs vim y^,返回上一次替换位置,貌似没有取消替换 82
cht m% emacs vim !,全部替换并退出 82

查询——替换(以及其他复杂命令)的重复执行 84
重复代码命令,上一个代码命令下一个代码命令

cht m% emacs vim q
cx<esc><esc> mpmn

递归编辑 85
cht m% emacs vim cr 1 cmc,查找替换时,递归编辑 86

查找操作中的字母大小写问题 86
cht mx set-variable case-fold-search nil m% emacs vim,设置精确匹配大小写属性值 87
cht mx set-variable case-replace nil m% emacs vim,设置不根据原始文本大小写顺序替换 87

查找与替换操作中的正则表达式 87
cht <esc>cs .macs,正则匹配emacs单词 87
cht mx replace-regexp .macs vim,正则替换emacs单词,同样受到case-replace变量影响 87,google emacs regex replace https://www.gnu.org/software/emacs/manual/html_node/emacs/Regexp-Replace.html

拼写检查 89

暂无
m: ispell-program-name ref so title Where is the ispell default dictionary http://stackoverflow.com/questions/21063959/am-i-using-ispell-or-aspell-and-where-is-the-local-dictionary-saved
vim /usr/share/myspell/en_US.dic $HOME/.hunspell_default ref google hunspell default dictionary location

Ispell的使用方法 90

chv ispell-program-name
cht mx ispell-buffer

查单词 94
未测试

Ispell进程 95
未测试

使用unix拼写检查器 95
spell-word
未测试

往unix拼写检查器的字典里添加新单词 98
未测试

单词简写模式 99

暂无

为一次编辑工作定义临时性的简写词汇 101

cxb1 mx abbrev-mode
li cxaig linux
li

sum:
emacs 25
chk cx aig
inverse-add-global-abbrev
chk cx ail
inverse-add-mode-abbrev

为多次编辑工作定义永久性的简写词汇 101
添加以下到 ~/.emacs

(setq-default abbrev-mode t)
(read-abbrev-file "~/.abbrev_defs")
(setq save-abbrevs t)
cxb1 mx abbrev-mode
li cxaig linux
mx write-abbrev-file
~/.abbrev_defs
mx load-file ~/.emacs
cxcc

cat ~/.abbrev_defs 查看

启动emacs

mx list-abbrevs
cxcc

删除简写词汇条目 102

cxb1 mx abbrev-mode
li cxaig linux
mx list-abbrevs
cxo cs li ca ck cxcs
cxb1 li

sum:
mx edit-abbrevs 用于编辑

禁用简写词汇 103

cxb1 mx abbrev-mode
li cxaig linux
mx list-abbrevs
mx kill-all-abbrevs
mx list-abbrevs

简写词汇与字母的大小写 104

cxb1 mx abbrev-mode
li cxaig linux
li Li LI lI

4 使用缓冲区和窗口

文件、编辑缓冲区和窗口 107

写入
cxb 1 cxcw 11
保存
cxcf 1 cxcs

同时使用多个编辑缓冲区进行工作 109

cxb

多个编辑缓冲区的保存 111
cxcf1 1 cxcf2 2 cxs

编辑缓冲区的删除 112

cxb1 cxcb
cxk1 cxcb

编辑缓冲区的重新命名 113

cxcf1
mx rename-buffer 2
cxcb

只读编辑缓冲区 114

cxb1 cxcb
cxcq cxcb

sum:q是query。状态行—变为%%-

使用窗口进行编辑 115

创建上下排列的窗口 116
cx2

创建左右排列的窗口 117
cx3

在窗口之间移动 118
co移动下一个窗口
c2 co移动下两个窗口

窗口的删除 120
cx1保留当前窗口
cx0删除当前窗口

调整窗口的大小尺寸 120
cx^加高,
c-x{ c-x}窄宽

窗口大小的上下、限 122

chv window-min-height
chv window-min-width

默认4和10

对其他窗口进行操作的快捷命令 122
其他窗口打开
cx4f 1 cx4f 2
cx4b cx4b

对比两个窗口中的文件 122

cxb1
1<cr>2 m<
cx4b2
1<cr>3 m<
mx compare-windows

跳到第2行

查看编辑缓冲区清单 124
cxcb
sum:

.已显示
%只读
>标记为待显示
*已修改
D标记为待删除
S标记为待存盘

与编辑缓冲区清单有关的操作 126
编辑缓冲区移动
cxcb cxo cncp
添加待删除标记
cxcb cxo dx
删除标记

cxcb d 
cp u

保存缓冲区
cxcb cxo sx
删除已修改标记
cxcb cxo cncn ~M字段的*消失
删除只读标记 127
cxcb cxo %R字段的%消失,状态栏的%%消失
其他窗口满屏显示缓冲区,跳转光标 127
cxcb cxo 1窗口全屏显示GNU Emacs缓冲区
缓冲区列表窗口显示缓冲区 128
cxcb cxo f缓冲区清单窗口显示GNU Emacs缓冲区
其他窗口显示缓冲区,跳转光标 128
cxcb cxo o另一个窗口显示GNU Emacs缓冲区并跳转
其他窗口显示缓冲区,不跳转光标 128
cxcb cxo co另一个窗口显示scratch缓冲区但不跳转
新建窗口显示待显示缓冲区 128
cxcb cxo mmmvWarnings下面显示三个>缓冲区窗口

在文档中使用书签 130

书签的设置 131

cxcf 1 cxcs
cxrm 1 cxrl

sum:文件可以不存在,如果不存在则无法使用cxrb跳转,cxb1无法设置标签

移动到书签指示的位置 131

cxcf 1 cxcs
cxrm 1 cxrb <tab>

当前窗口读取书签

书签的重新命名和删除 132

cxcf 1 cxcs cxrm 1 
mx bookmark-rename 1 2
mx bookmark-delete 2
cxrl

重命名和删除书签1

与书签清单有关的操作 133
查看书签清单
cxrl
删除书签
cxcf 1 cxcs cxrm 1 cxrl dx
标记书签1,查看书签2和书签1

cxcf 1 cxcs cxrm 1 
cxcf 2 cxcs cxrm 2
cxrl mv

查看书签1

cxcf 1 cxcs cxrm 1 
cxrl f

只显示书签名,不显示文件名

cxcf 1 cxcs cxrm 1
cxrl t

sum:意义不大

与书签有关的其他编辑命令 134
插入书签1文件内容到书签1文件

cxcf 1 a cxcs cxrm 1 
cxb2 mx bookmark-insert 1

保存所有书签到文件

cxcf 1 cxcs cxrm 1
mx bookmark-write b
未测试用shell命令查看

读取书签文件

cxcf 1 cxcs cxrm 1
mx bookmark-write b
cxrl dx
mx bookmark-load b
cxrl

临时性地挂起emacs 135

最小化terminal emacs
cz
切换为emacs

cz
m-tab

使用多个x窗口进行编辑 137

窗格操作命令 138
新建窗格显示当前缓冲区
cx52
新建窗格打开文件
cx5f 1
跳转窗格
cx52 cx5o
删除窗格
cx52 cx50
sum:只有1个窗格时,不可关闭
新建窗格打开文件,只读
cx52 cx5r 1

新建窗口打开文件
cx4f 1

窗格与变编辑缓冲区的关系 141
暂无

窗口与编辑缓冲区的关系 141
暂无

疑难解答 142
暂无

5 emacs工作环境

在shell编辑缓冲区里执行unix命令 143

一次执行一条unix命令 144
ls
m! ls
diff

m!
echo -e "1\n2" > ~/1 ; echo -e "1\n3" > ~/2 ; diff ~/1 ~/2

输出
2c2
< 2
---
> 3

文本作为命令输入 145

m! ls cx0 mh 
m| grep bin

设置shell,添加道.emacs

(setq explicit-shell-file-name "/bin/sh")

使用shell模式 147
使用shell模式 147

mx shell 
ls

cccc实现shell的c-c中断命令 148

mx shell
top cccc

补全上一条、下一条命令 148

mx shell 
ls
mp mn

清除当前输出组,即ls的输出 149

mx shell
ls ccco

未测试

光标跳转到输出结果的开头和结尾 150

mx shell
ls -R
cccr ccce

光标跳转到上一条命令、下一条命令 150

mx shell
ls -R
cccp cccn

当前目录 150

mx shell
ls
cd / cxcf

shell的初始化151

chv explicit-shell-file-name
m: (setq explicit-shell-file-name "/bin/sh")
chv explicit-shell-file-name

远程shell的问题 152
暂无

用shell模式预防安全隐患 153
暂无

文件和目录操作 155

shell启动emacs的目录编辑模式 155
emacs ~
emacs启动目录编辑模式
cxcf ~
cxd ~
日期排序 156
cxcf ~

查看和编辑文件 157
查看文件
cxcf ~ v
查看光标所在行 157
cxcf ~ v =
退出查看,返回目录
cxcf ~ v q,cc也行,q更好记
编辑文件
cxcf ~ f
退出编辑,返回目录
cxcf ~ f cxb,cxcf也行,多按一个键

文件的删除、复制、重命名操作 157
添加待删除标记 158
cxcf ~ d
执行标记操作 158
cxcf ~ d x
取消标记 158
cxcf ~ d p u
标记所有自动保存文件为待删除 158 #

touch ~/'#1#' ~/'#2#'
emacs

cxcf ~ #

标记所有备份文件为待删除 158 ~

touch ~/'1~' ~/'2~'
emacs

cxcf ~ ~

复制文件 159

touch 1
emacs

cxcf ~
C 1 11

重命名文件 160

touch 1
emacs

cxcf ~
R 1 11

文件的压缩和解压缩操作 160

touch 1
emacs

cxcf ~ Z Z

对文件进行比较 160
对文件进行比较

echo -e "1\n2" > ~/1
echo -e "1\n3" > ~/2
emacs

cxcf ~ = 2

对备份文件进行比较

echo -e "1\n2" > ~/1
echo -e "1\n3" > ~/1~
emacs

cxcf ~ m=

emacs25 没有快捷键,只能手选

在文件上运行unix命令 161
sort

cxcf ~
cs .emacs
!sort

直接处理文件内容,等价cat .emacs|sort 或 sort *

重定向

cxcf ~
cs .emacs
!sort * > 1

刷新目录 162

rm 1
emacs

cxcf ~
cx4f1 cxcs
cxo g

对文件组进行操作 163
选取文件 163

cxcf ~ m

批量选取文件 163

cxcf ~ 2m

批量操作文件 163

cxcf ~ 2m D

大写操作即可

取消选取文件 164

cxcf ~ m p u

取消选取所有文件 164

cxcf ~ mm m<del>
cxcf ~ mm U

误操作测试出,U也能取消所有

用正则表达式来选取文件 164
正则表达式选取文件

cxcf ~
%m

正则表达式标记待删除文件

cxcf ~
%d

文件组上的操作 165
创建目录 165

cxcf ~
+

移动文件 167

cxcf ~
R

正则查询替换文件 168

echo 1 > ~/1 ; echo 1 > ~/2
emacs

cxcf ~ 标记1和2
Q 1 a y y
cxcf ~

简单的目录清单 171
其他窗口列出目录

cxcf ~
cucxcd ~/*

emacs中的打印操作 171

mx print-buffer
user-error: Spooling…done: /usr/bin/lpr: Error - no default destination available.

未测试

用emacs查阅unix的在线文档 173

man

mx man ls

默认查看emacs manual

查看光标所在命令

cxb1 ls
mx manual-entry

时间管理工具的使用 173

时间显示 174
mx display-time,显示时间 174

显示日历 174
显示日历 174
mx calendar
从周一显示日历 174
mx set-variable calendar-week-start-day 1 mx calendar
从周一显示日历lisp

(setq calendar-week-start-day 1)

默认日历lisp

(calendar)

在日历中移动 175
明天、昨天

mx calendar
cf cb

下一周同一天,上一周同一天 175

mx calendar
cn cp

下三个月,上三个月 175

mx calendar
cv mv

下一月同一天 175

mx calendar 
m} m{

下一年同一天,上一年同一天 175

mx calendar
cx] cx[

星期末、星期初(默认周六周日) 175

mx calendar
ce ca

年末、年初 175

mx calendar
m> m<

跳转指定年月日 175

mx calendar 
gd 2011 11 11

跳转到今天 175

mx calendar 
cf .

显示节假日 176
查看前2月和本月节假日
mx calendar a
查看前月、本月、明月节假日
mx calendar mx holidays
查看今天节假日
mx calendar h,显示在状态栏
标记节假日颜色和取消标记 177

mx calendar 
x u

日记功能的使用 178
创建一个日记文件 178
未测试

添加日记条目 179
添加今日条目 179

mx calendar 
id day cxcs cxo d

默认保存到 ~/.emacs.d/diary 179

添加每周今日条目 179

mx calendar 
iw week cxcs cxo d

添加每月今日条目 179

mx calendar 
im month cxcs cxo d

添加每年今日条目 179

mx calendar 
iy year cxcs cxo d

添加循环间隔1天条目 179

mx calendar 
ic 1 cyclic cxcs cxo d

添加持续今明2天条目 179

mx calendar 
c<sp> cf
ib block cxcs cxo d

显示日记条目 181
mx calendar d,显示日历当日条目到另一个窗口 181
mx calendar s,显示日历当日条目代码到另一个窗口 181

用好emacs工作环境 183

暂无

6 电子邮件和usenet新闻

Emacs的电子邮件功能 184

cxm 185

用Emacs发送邮件

用Emacs读取邮件

用Gnus读取Usenet新闻

7 emcas的因特网工具箱

Emacs的Telnet模式 241

mx telnet stmp.163.com

Emacs的Ange-ftp模式 245

用W3模式浏览Web主页 249

8 简单的文字排版和特效编辑

文本的缩进 262

制表位的使用 262

缩进整个段落 263

cht
cncn tab mq
cnca tab mq

设置制表位 264

mx edit-tab-stops 
cx( <sp><sp><sp>: cx)
m6cxe
cccc cht <tab>

退出失效,无法永久保存

把制表位转换为空格 265

cxb1 <tab>
mh mx untabify
mh mx tabify

缩进前导字符串的使用 266

默认自动缩进
自动换行模式 266

mx auto-fill-mode
<sp>1<cr>
1<cr>
<r>

未测试,

手动输入缩进值

未测试

文本缩进模式 268
默认自动缩进
cht mx intented-text-mode<cr> <tab>cf<cr>

文本缩进模式中的制表位 270
未测试,不理解

对文本块进行缩进 270

cxb1
1<cr>1<cr>
<tab> cx.
cxh cm\

sum:emacs25 不需要设置 indented-text-mode

其他缩进技巧 271
移动到文本行第一个非空白字符 271

cxb1
<tab>11<sp>11
mm

台阶效果 271

cxb1
111
cbcb cmo
cncf cmo

文本的居中 272

cxb1
1<cr>
1<cr>
moms

sum:emacs25更新快捷键

插入分页符 274

cxb1 cqcl
未测试

矩形编辑 275

1 1

1 1
cxb1
插入数据
c<sp> cb cpcp
cxrk c cxry

绘制简单的图形 281

在图形模式中绘制图形 282

cxb1 mx edit-picture
cc> c2a cc. c2b cc< c2c cc^ c2d

sum:gameFAQ

图形模式中的编辑操作 285
图形模式中的光标移动操作 286
暂无
插入文本行 287

cxb1
mx edit-picture
1<cr>1
cp<cr>
cpco

在图形模式中使用矩形编辑命令 289

1 1

1 1
cxb1 插入数据

mx edit-picture
c<sp>
cb cpcp
cccw r
cb
cccx r

Emacs的大纲模式 291

进入大纲模式 293

*1
**11
111
*2
**22
222

cccn cccp cccf cccb

文本的隐藏和显示 294

*1
**11
111
*2
**22
222

ccct ccca cccd cccs

文本被隐藏时的编辑 296

*1
**11
111
*2
**22
222

ccct ce a cnce b ccca

*1a
**11
111b
*2
**22
222

使用大纲副模式 297
暂无

对大纲模式进行定制 298
查看标题正则
chv outline-regexp
设置标题正则
未测试

9 用emacs设置排版标记

设置troff和nroff排版标记 302

暂无

设置tex和latex排版标记 309

暂无

编写html文档 316

暂无

Emacs的html-helper模式 317

启动html-helper模式 318
google emacs 没有 html-helper 模式
http://blog.chinaunix.net/uid-7591142-id-112463.html
HTML helper模式不属于默认的Emacs扩展
暂无

10 emacs中的宏

什么是宏 334

暂无

定义宏 335

定义宏 335

cxb 1
cx( aa cx) cxe

技巧:如何创建良好的宏 338
暂无

示例:一个更复杂的宏 340
未测试

向现有的宏里增加编辑命令 342

cx( aa cx) cxe
cucx( bb cx)

命名并保存宏 343

命名宏 343

cxb 1
cx( aa cx) cxe
mx nam<tab>(name-last-kbd-macro)
mx mac1

保存宏 344

cxb 1
cx( aa cx) cxe
mx nam<tab>(name-last-kbd-macro) mac
mx in-k<tab>(insert-kbd-macro) mac

sum:mx in-k<tab>插入默认宏last-kbd-macro

执行一个已命名的宏 344

cxb1
cx( aa cx)
mx name-last-kbd-macro mac1
cxcf mac
mx insert-kbd-macro mac
cxcs
cxcc

启动emacs
cxb1 
mx load-file mac
mx mac1

建立复杂的宏 345

暂停宏的执行以等待键盘输入 346

cxb1
cx( aa cucxq 1 cmc bb cx)
cxe 2 cmc

在宏例插入一个查询 348

cht
cx( cs c- <cr> cx)
cxe
yeye

LISP函数——宏的补充 350

暂无

11 对emacs进行定制

键盘的定制 353

特殊键 356
未测试

终端支持 360

流控制问题的解决办法 363
未测试

Emacs变量 364

未测试

Emacs的LISP程序包 366

未测试

自动模式的定制 366

未测试

12 程序员的emacs

语言编辑模式 370

语法 372
未测试

格式 373
未测试

C和C++模式 377

移动命令 378
未测试

对代码的缩进样式进行定制 381
未测试

c和c++模式的附加功能 384
未测试

c++模式的差异 387
未测试

etags 389
未测试

LISP模式 391

未测试

Fortran模式 399

未测试

对程序进行编译 405

未测试

13 用lisp语言对emacs做进一步开发

Lisp语言简介 409

lisp语言的基本元素 410

函数的定义 412
未测试

把lisp函数转变为emacs命令 416
未测试

Lisp语言的基础函数 420

语句块 421

控制结构 422
未测试

Emacs的内部函数 425

编辑缓冲区、文本和文本块 425
未测试

正则表达式 427
未测试

使用正则表达式的函数 438
未测试

找出其他的内部函数 439

主编辑模式程序设计实例 441

对现有编辑模式进行定制 451

建立自己的Lisp开发库 458

14 emacs编辑器和x窗口系统

Emacs的X界面 461

窗口卷屏和x状态行 461
未测试

菜单条 462
未测试

鼠标的其他用途 462
未测试

Emacs的删除环和x的选取缓冲区 463
未测试

窗格的使用 464

让Emacs使用X字体和颜色 465

定制Emacs在X环境中的显示情况 467

通过.Xdefaults文件进行定制 467

属性、窗格、菜单和鼠标事件 469

与X服务器进行通信 479

良好的X程序设计风格 480

15 emacs下的版本控制

版本控制的用途 482

版本控制的有关概念 483

VC对基本操作的辅助作用 485

修改注释的编辑 486

VC命令汇总

VC模式的标志 488

使用哪一种版本控制系统 488

VC命令细说 489

对VC进行定制 495

对VC进行扩展 495

VC的不足之处 498

有效地使用VC 499

16 在线帮助

Emacs的自动补足功能 500

对自动补足功能进行定制 503
未测试

帮助命令 504

详细资料 505
未测试

apropos 507
cha lisp

一般性资料 509
未测试

针对复杂Emacs命令的帮助功能 512

未测试

 类似资料: