版权声明:对于本博客所有原创文章,允许个人、教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者、出处及本声明。
博客地址:http://blog.csdn.net/shuxiao9058
原始作者:季亚
第十二章程序员的Emacs
表12-1:基本缩进命令速查表
键盘操作
|
命令名称
|
动作
|
C-M-\
|
indent-region
|
对光标和文本块标记之间的每一行进行缩进
|
M-m
|
back-to-indentation
|
把光标移到当前行的第一个非空白字符上
|
M-^
|
delete-indentation
|
把当前行合并到上一行去
|
表12-2:C模式高级移动命令速查表
键盘操作
|
命令名称
|
动作
|
M-a
|
c-beginning-of-statement
|
移动到当前语句的开头
|
M-e
|
c-end-of-statement
|
移动到当前语句的末尾
|
M-q
|
c-fill-paragraph
|
如果光标在注释文本中间,则进行段落重排,保留缩进和前导字符
|
C-M-a
|
beginning-of-defun
|
移动到光标所在函数的开头
|
C-M-e
|
end-of-defun
|
移动到光标所在函数的末尾
|
C-M-h
|
c-mark-function
|
把光标放到函数的开头,把文本块标记放到函数的末尾——即把函数整个选取为一个文本块
|
C-c C-q
|
c-indent-defun
|
按缩进样式对整个函数进行缩进
|
C-c C-u
|
c-up-conditional
|
移动到当前预处理器条件的开始位置
|
C-c C-p
|
c-backward-conditional
|
移动到上一个预处理器条件
|
C-c C-n
|
c-forward-conditional
|
移动到下一个预处理器条件
|
表12-3:C模式缩样式速查表
缩进样式
|
说明
|
bsd
|
BSD系列的UNIS版本使用的编程风格
|
cc-mode
|
默认的编程风格;其他样式都是从它推导出来的
|
ellemtel
|
瑞典Ellemtel电讯系统实验室的C++文档里使用的编程风格
|
gnu
|
Emacs自身和其他GNU程序所使用的C语言书写风格
|
java
|
在编写Java代码时使用的风格(Java模式的默认值)
|
k&r
|
Kernighan和Ritchie合著的《The C Programming Language》一书中使用的编程风格,这本书是C语言的开山之作
|
linux
|
部分Linux内核中C代码所使用的一种风格
|
python
|
Python扩展中使用的风格
|
stroustrup
|
Bjarne Stroustrup所著的《The C++ Programming Language》一书中使用的编程风格,这本书是C++语言的标准参考书
|
user
|
通过定制.emacs文件或自定义(参见第10章)。如果你设置所有其他了它们,所有其他样式将继承自这些自定义
|
whitesmith
|
Whitesmith公司在他们的C和C++编译器软件的文档里使用的编程风格
|
表12-4:S-表达式处理命令速查表
键盘操作
|
命令名称
|
动作
|
C-M-b
|
backward-sexp
|
移动到上一个S-表达式
|
C-M-f
|
forward-sexp
|
移动到下一个S-表达式
|
C-M-t
|
transpose-sexps
|
交换光标前后的两个S-表达式的位置
|
C-M-@
|
mark-sexp
|
把文本块标记设置在当前S-表达式的末尾,把光标设置在当前S-表达式的开头
|
C-M-k
|
kill-sexp
|
删除光标后面的那个S-表达式
|
(无)
|
backward-kill-sexp
|
删除光标前面的那个S-表达式
|
表12-5:列表处理命令速查表
键盘操作
|
命令名称
|
动作
|
C-M-n
|
forward-list
|
移动到上一个列表
|
C-M-p
|
backward-list
|
移动到下一个列表
|
C-M-d
|
down-list
|
向前移动,进入下一级括号层次
|
(无)
|
up-list
|
向前移动,退出当前的括号层次
|
C-M-u
|
backward-up-list
|
向后移动,退出当前的括号层次
|
表12-6:以函数定义(defun)为单位进行移动的命令速查表
键盘操作
|
命令名称
|
动作
|
C-M-a
|
beginning-of-defun
|
移动到当前函数的开头
|
C-M-e
|
end-of-defun
|
移动到当前函数的结尾
|
C-M-h
|
mark-defun
|
把光标放到函数的开头,把文本块标记放到函数的结尾
|
表12-7:FORTRAN模式中的移动命令速查表
键盘操作
|
命令名称
|
动作
|
C-c C-n
|
fortran-next-statement
|
向前移动一个语句
|
C-c C-p
|
fortran-previous-statement
|
向前向移动一个语句
|
ESC C-a
|
beginning-of-fortran-subprogram
|
移动到当前子程序的开头
|
ESC C-e
|
end-of-fortran-subprogram
|
移动到当前子程序的结尾
|
ESC C-h
|
mark-fortran-subprogram
|
把光标放到子程序的开头,把文本块标记放到子程序的结尾
|
表12-8:FORTRAN模式中的Emacs变量
变量
|
默认值
|
说明
|
fortran-minimum-statement-indent
|
6
|
开始输入语句之前需要保留的缩进量(例如:缩进量为6时语句将从7列开始输入)
|
fortran-do-indent
|
3
|
do语句块里的语句还需要增加的缩进量
|
fortran-if-indent
|
3
|
if语句块里的语句还需要增加的缩进量
|
fortran-continuation-char
|
$
|
续行时放在第6列里的续行标记字符
|
fortran-continuation-indent
|
5
|
语句续行时的缩进量(比如从第6列开始再缩进5个字符的位置)
|
fortran-comment-line-column
|
6
|
占据一整行的注释所使用的缩进量;“ESC;”命令使用的就是这个值
|
fortran-comment-indent-style
|
‘fixed (固定值)
|
这个变量的值可以取“nil”、“’fixed”或“’relative(相对值)”,注意后两个值的前面带有单引号;请参见下面的用法示例
|
comment-start
|
nil
|
与程序代码同在一行上的注释的前导字符;请参见下面的用法示例。如果这个变量取值为“nil”
|
fortran-line-unmber-indent
|
1
|
行号的最大缩进量,用来保证行号不会延伸到第5列(续行标记列)上。请参考后面对语句自动编号功能的讨论
|
fortran-comment-region
|
“c$$$”
|
由fortran-comment-region(“C-c;”)命令插入到每一行前面去的字符串
|
表12-9:FORTRAN模式下的一些缩略词汇
缩略词汇
|
关键字
|
;c
|
continue
|
;dp
|
double precision
|
;dw
|
do while
|
;f
|
format
|
;fu
|
function
|
;g
|
goto
|
;in
|
integer
|
;p
|
print
|
;rt
|
ENTER
|
;su
|
subroutine
|
表12-10:编译模式命令速查表
键盘操作
|
命令名称
|
动作
|
C-x ‘
|
next-error
|
移动到下一条出错信息并访问与之对应的源代码
|
M-n
|
compilation-next-error
|
移动到下一条出错信息
|
M-p
|
compilation-previous-error
|
移动到上一条出错信息
|
C-c C-c
|
compilation-goto-error
|
访问对应于当前出错信息的源代码
|
SPACE
|
scroll-down
|
下卷屏幕显示内容
|
DEL
|
scroll-up
|
上卷屏幕显示内容
|
表12-11:JDEEMakefile条目
Makefile条目
|
示例
|
说明
|
prefix
|
/usr/local
|
任何软件的“shared”和“info”顶级目录
|
datadir
|
$(prefix)/share
|
Emacs主目录所在的地方
|
locallisppath
|
$(datadir)/emacs/site-lisp
|
所有本地LISP文件应该放置的地方
|
ELIBDIR
|
$(locallisppath)/elib
|
ELIB LISP文件将放在这个目录
|
EMACS
|
/usr/bin/emacs
|
这个命令用来启动Emacs。可以是绝对路径或“emacs”能检测到你当前系统所安装的Emacs版本
|
表12-12:JDEE的环境变量
JDEE变量名
|
示例值
|
jde-global-classpath
|
/usr/local/j2se:.
|
jde-jdk-registry
|
Version = 1.4.2
Path = /usr/local/j2se
|
表12-13:生成代码菜单选项
键盘操作
|
菜单选项(M-x
命令)
|
动作
|
C-c C-v C-l(小写的“L”)
|
Println Wizard(jde-gen-println)
|
提示插入一个完整的System.out.println()方法
|
C-c C-v C-z
|
Import Class(jde-import-find-and-import)
|
提示输入(简单)类名,以自动导入,并在文件头添加适当的导入说明
|
C-c C-v i
|
Implement Interface(jde-wiz-implement-interface)
|
提示输入要实现的接口的名称。添加任何缺少的import语句(包括依赖导入,如方法参数的导入)。为每个接口中的方法提供注释框架
|
表12-14:JDEE调试控制
键盘操作
|
菜单选项
|
JDB命令
|
C-c C-a C-s
|
Step Into
|
step
|
C-c C-a C-n
|
Step Over
|
next
|
C-c C-a C-c
|
Continue
|
cont
|
C-c C-a C-b
|
Toggle Breakpoint
|
stop in/stop at/clear
|
C-c C-a C-p
|
Display Expression
|
print
|
C-c C-a C-d
|
Display Object
|
dump
|
第十三章用LISP语言对Emacs做进一步开发
表13-1:交互式函数的参数类型代码
参数类型代码
|
参数类型
|
b
|
一个现有编辑缓冲区的名字
|
e
|
事件(鼠标动作或功能键动作)
|
f
|
一个现有文件的名字
|
n
|
数字(整数)
|
s
|
字符串
|
这些代码还有相应的大写变体:
参数类型代码
|
参数类型
|
B
|
一个可能不存在的编辑缓冲区的名字
|
F
|
一个可能不存在的文件的名字
|
N
|
如果命令在调用时带有一个前缀参数,按前缀参数指示的情况办理;否则就是数字
|
S
|
符号
|
表13-2:LISP语言的基础函数
算术运算
|
+、 -、 *、 /(加、减、乘、除)
|
|
%
(求余数)
|
|
1+
(递增)
|
|
1-
(递减)
|
|
max(最大值)、 min(最小值)
|
比较运算
|
>、 <、 >=、 <=(大于、小于、不小于、不大于)
|
|
/=
(不等于)
|
|
=
(等于,用于数字和字符)
|
|
equal(等于,用于字符串和其他复杂的数据对象)
|
逻辑运算
|
and(与)、or(或)、not(非)
|
表13-3:ANSI方向键输出的字符代码
箭头键
|
字符代码
|
上
|
ESC O A
|
下
|
ESC O B
|
右
|
ESC O C
|
左
|
ESC O D
|
表13-4:与编辑缓冲区和文本有关的函数
函数名称
|
返回值或执行动作
|
point
mark
|
光标的字符位置 文本标记的字符位置
|
point-min
point-max
|
最小字符位置(通常是1) 最大字符位置(通常是编辑缓冲区的长度)
|
bolp
eolp
bobp
eobp
|
光标是否位于行首(取值为“t”或“nil”) 光标是否位于行尾 光标是否位于编辑缓冲区的开始 光标是否位于编辑缓冲区的末尾
|
insert
|
把任意个数的参数(字符串或字符)插入到编辑缓冲区光标位置之后
|
number-to-string
string-to-number
char-to-string
concat
substring
aref
|
把一个数值参数转换为一个字符串 把一个字符串转换为一个数字(整数或浮点数) 把一个字符数字转换为一个字符串 把任意个数的字符串合并到一起 给定一个字符串及两个整数索引start和end,返回从start指示的位置开始到end指示的位置前结束的子字符串。下标从0开始计算。比如说,函数“(substring “appropriate”
2 5)”将返回子字符串“pro” 数组索引函数,它可以用来从字符串里取出单个的字符;它的输入参数是一个整数,从函数返回的是一个以整数表示的字符,返回值(在大多数机器上)使用的是ASCII码。比如说,函数“aref “appropriate” 3”将返回数字“114”,即字母“r”的ASCII码
|
表13-5:正则表达式基本操作符
Emacs操作符
|
UNIX shell操作符
|
作用
|
.
|
?
|
匹配任意一个字符
|
.*
|
*
|
匹配任意一个字符串
|
[abc]
|
[abc]
|
匹配字母a、b或c
|
[a-z]
|
[a-z]
|
匹配任意一个小写字母
|
|
表13-6:正则表达式操作符速查表
操作符
|
作用
|
.
|
匹配任意一个字符
|
*
|
匹配其前面的字符或字符组出现零次或更多次的情况
|
+
|
匹配其前面的字符或字符组出现一次或更多次的情况
|
?
|
匹配其前面的字符或字符组出现零次或一多次的情况
|
[...]
|
字符的集合,参见下面的说明
|
\\(
|
开始一个字符组
|
\\)
|
结束一个字符组
|
\\|
|
匹配“\\|”前、后的子表达式
|
^
|
如果出现在正则表达式的开始,匹配文本行首或字符串的开始
|
$
|
如果出现在正则表达式的末尾,匹配文本行首或字符串的末尾
|
\n
|
在正则表达式里匹配换行符LINEFEED
|
\t
|
在正则表达式里匹配制表符TAB
|
\\<
|
匹配单词的开始
|
\\>
|
匹配单词的结尾
|
下面的操作符出现在字符集里时的含义:
操作符
|
作用
|
^
|
如果出现在字符集的开始,则该字符集将被用做不匹配字符集
|
- (dash)
|
用来设定字符范围
|
下面的操作符出现在regexp替换字符串里时的含义:
操作符
|
作用
|
\\n
|
替换第N个“\\(”和“\\)”之间的部分匹配,从左归组操作符“\\(”向右编号,编号从1开始
|
第十四章 Emacs编辑器和X窗口系统
表14-1:Emacs的窗格操作命令速查表
键盘操作
|
命令名称
|
动作
|
C-x 5 f
|
find-file-other-frame
|
访问另一窗格里的某个文件
|
C-x 5 d
|
dired-other-frame
|
在另一个窗格里运行Dired模式
|
C-x 5 0
|
delete-frame
|
删除当前窗格
|
C-c 5 b
|
switch-to-buffer-other-frame
|
切换到另一个窗格
|
第十五章 Emacs下的版本控制
表15-1:VC命令速查表
键盘操作
|
命令名称
|
动作
|
C-x v v
|
vc-next-action
|
前进到下一个合乎逻辑的版本控制状态
|
C-x v d
|
vc-directory
|
列出某个子目录下所有的已注册文件
|
C-x v =
|
vc-diff
|
生成一份版本差异报告
|
C-x v u
|
vc-revert-buffer
|
丢弃上次修订版之后的一切修改
|
C-x v ~
|
vc-version-other-window
|
在另外一个窗口打开指定的修订版
|
C-x v l
|
vc-print-log
|
显示某个文件的修改注释和修改记录
|
C-x v i
|
vc-register
|
把文件注册到版本控制系统
|
C-x v h
|
vc-insert-headers
|
给文件加上供版本控制系统使用的标题块
|
C-x v r
|
vc-retrieve-snapshot
|
签出一个已命名的项目快照
|
C-x v s
|
vc-create-snapshot
|
创建一个项目快照并给它起个名字
|
C-x v c
|
vc-cancel-version
|
丢弃一个已经保存起来的修订版
|
C-x v a
|
vc-update-change-log
|
刷新一个GNU格式的ChangLog文件
|
表15-2:Ediff命令速查表
键盘操作
|
命令名称
|
动作
|
Space或n
|
ediff-next-difference
|
移动到该文件下一个修改过的地方
|
Del或p
|
ediff-previous-difference
|
移动到该文件上一个修改过的地方
|
j
|
ediff-jump-to-difference
|
转到前缀数字参数所指定差异的地方
|
v或C-v
|
ediff-scroll-vertically
|
两个编辑缓冲区均向前移动一页
|
V或M-v
|
ediff-scroll-vertically
|
两个编辑缓冲区均向后移动一页
|
<
|
ediff-scroll-horizontally
|
将每个编辑缓冲区向左滚动
|
>
|
ediff-scroll-horizontally
|
将每个编辑缓冲区向右滚动
|
| (竖线)
|
ediff-toggle-split
|
切换查看缓冲区方式,是只查看当前文件,还是同时查看这两个编辑缓冲区
|
m
|
ediff-toggle-wide-display
|
在正常窗口与最宽窗口之间切换
|
a
|
ediff-copy-A-to-B
|
将编辑缓冲区A中与编辑缓冲区B不同的内容信息复制到编辑缓冲缓冲区B中
|
b
|
ediff-copy-B-to-A
|
将编辑缓冲区B中与编辑缓冲区A不同的内容信息复制到编辑缓冲缓冲区A中
|
r a或r b
|
ediff-restore-diff
|
恢复编辑缓冲区A(或B)从另一缓冲区复制之前的状态
|
A或B
|
ediff-toggle-read-only
|
对指定编辑缓冲区切换到(或退出)只读模式
|
g a或g b
|
ediff-jump-to-difference-at-point
|
在最近(当前光标位置)差异的地方与指定的编辑缓冲区进行比较,并将光标移动到有差异的地方
|
C-l
|
ediff-recenter
|
恢复比较显示,使所有编辑缓冲区被比较突出的地方是高亮的;如果你做别的东西,并要回去之前的光标位置的时候比较有用
|
!
|
ediff-update-diffs
|
重新计算并显示突出显示的区域;当手动且对编辑缓冲区有很大的修改时比较有用.
|
w a或w b
|
ediff-save-buffer
|
将指定的编辑缓冲区保存起来
|
E
|
ediff-documentation
|
打开Ediff手册
|
z
|
ediff-suspend
|
关闭Ediff的控制窗口,但当前会话还在活动,稍后你还可以恢复它
|
q
|
ediff-quit
|
关闭Ediff的控制窗口并结束当前比较的会话
|
第十六章在线帮助
表16-1:用来查找详细资料的帮助命令
键盘操作
|
命令名称
|
回答的问题
|
C-h c
|
describe-key-briefly
|
这个按键组合将运行哪个命令
|
C-h k
|
describe-key
|
这个按键组合将运行哪个命令?这个命令的作用是什么
|
C-h l
|
view-lossage
|
最近输入的100个字符是什么
|
C-h w
|
where-is
|
这个命令的按键绑定是什么
|
C-h f
|
describe-function
|
这个函数的作用是什么
|
C-h v
|
describe-variable
|
这个变量的含义是什么?它有哪些可取值
|
C-h m
|
describe-mode
|
查看当前编辑缓冲区所在编辑模式的有关资料
|
C-h b
|
describe-bindings
|
这个缓冲区都有哪些按键绑定
|
C-h s
|
describe-syntax
|
这个编辑缓冲区使用的是哪个语法表
|
表16-2:apropos命令
键盘操作
|
命令名称
|
回答的问题
|
C-h a
|
command-apropos
|
这个概念都涉及到哪些命令
|
(无)
|
apropos
|
这个概念都涉及到哪些函数和变量
|
(无)
|
super-apropos
|
哪些函数和变量的文档里提到了这个概念
|
表16-3:用来查找一般性资料的帮助命令
键盘操作
|
命令名称
|
动作
|
C-h t
|
help-with-tutorial
|
运行Emacs教程
|
C-h i
|
info
|
启动文档阅读器Info程序
|
C-h C-f
|
Info-goto-emacs-command-node
|
启动文档阅读器Info程序,并前进到指定的结点;这个帮助命令的参数是一个命令名
|
C-h C-k
|
Info-goto-emacs-key-command-node
|
启动文档阅读器Info程序,并前进到指定的结点;这个帮助命令的参数是对应于某个命令的按键组合
|
C-h n
|
view-emacs-news
|
查看关于Emacs新增和改进功能的信息
|
C-h F
|
view-emacs-FAQ
|
查看Emacs的常见问题答疑文件
|
C-h p
|
finder-by-keyword
|
沿着这个命令弹出的菜单可以查到关于安装在本系统上的Emacs LISP程序包资料
|
C-h c
|
describe-copying
|
阅读Emacs的“通用公共许可证”(General Public License)
|
C-h C-d
|
describe-distribution
|
阅读从自由软件基金会订购的Emacs信息
|
C-h C-p
|
describe-project
|
查阅关于GNU软件开发项目的信息
|
C-h C-w
|
describe-no-warranty
|
查阅Emacs的免责条款
|
备注:本文大部分内容摘自学习GNU Emacs(第二版),文中紫色部分摘自Learning GNU Emacs, 3rd Edition,并由本人翻译整理而得。
分享到:
相关推荐
这本书旨在为用户提供一个快速查阅GNU Emacs命令和功能的平台,尤其适用于那些希望在编程、文本编辑和日常工作中高效利用GNU Emacs的用户。 ### GNU Emacs基础知识 GNU Emacs是一种高度可配置且功能丰富的文本编辑...
在学习GNU Emacs时,通常需要通过一系列的教程和手册来逐步掌握其丰富的命令和功能。GNU Emacs提供了大量预设的快捷键,用户可以通过这些快捷键快速完成各种复杂的编辑任务。对于初学者而言,可能首先需要了解如何...
emacs 教程 Writing GNU Emacs Extensions pdf
《学习GNU Emacs(第三版)》是一本深入探讨Emacs编辑器使用与定制的书籍,由Debra Cameron、James Elliott和Marc Loy共同撰写,由O'Reilly出版社于2004年12月出版,ISBN号为0-596-00648-9,全书共计534页。...
《学习GNU Emacs》第二版作为一本权威指南,不仅提供了对GNU Emacs的详细介绍,还附有速查卡,为读者提供了书中介绍的所有功能的快速参考。本书适合任何水平的Emacs用户,无论是初学者还是希望提升自己Emacs使用技能...
Programming in Emacs Lisp: An ...本书是一本GNU Emacs Lisp的编程入门,全书循序渐进地介绍了GNU Emacs Lisp编程的各种基础知识和方面,文笔流畅、讲解透彻,对GNU Emacs用户提高对它的理解和运用帮助极大。
GNU Emacs for Windows是一款专为Windows操作系统设计的开源文本编辑器,它是GNU项目的一部分,由自由软件基金会维护。Emacs在编程社区中广受欢迎,因其强大的功能、高度可定制性和丰富的扩展性而闻名。 Emacs的...
GNU Emacs 手册详细介绍了 Emacs 编辑器的使用方法,包括各种命令、功能、配置技巧等。它是学习和掌握 Emacs 功能的强大工具之一。手册不仅覆盖了基本编辑操作,还深入探讨了定制 Emacs 设置、使用 Lisp 编程语言...
这是GNU Emacs Manual的mobi版,Kindle用户大爱,不过Manual就是Manual不是什么实例教程。
GNU Emacs Lisp编程入门 GNU Emacs是一款著名的开源文本编辑器,以其高度可定制性和扩展性而闻名。Emacs的内核由C语言编写,但它的强大之处在于其内置的Lisp方言——Emacs Lisp(简称Elisp)。Elisp使得用户能够...
【自用完整书签系列】整理了所有页面,无缺页,并加入完整书签。
Learn_GNU_Emacs.pdf 清晰资源 Emacs,著名的集成开发环境和文本编辑器。Emacs被公认为是最受专业程序员喜爱的代码编辑器之一,另外一个vim。 EMACS,即Editor MACroS(编辑器宏)的缩写,最初由Richard Stallman...
Learn GNU Emacs第二版.pdf
GNU_Emacs orelly出版 学习emacs的经典著作
在《GnuEmacs》教程的第三版中,读者将获得深入学习这一编辑器的宝贵知识。 Emacs不仅是文本处理的利器,它还支持多种编程语言,并且拥有海量的插件和扩展包。这意味着,无论你的工作需求是什么,Emacs很可能都已经...
GNU Emacs Lisp 编程入门是一本非常专业的编程书籍,它详细地介绍了如何使用GNU Emacs Lisp这种编程语言来编写程序。GNU Emacs Lisp是一种用于GNU Emacs编辑器的编程语言,它是一种功能强大且灵活的编程工具,广泛...