emacs 教程

L_thread 2011-03-17 08:14:00
Emacs是一种强大的文本编辑器,在程序员和其他以技术工作为主的计算机用户中广受欢迎。EMACS,即Editor MACroS(编辑器宏)的缩写。

编辑模式
  Emacs采取的编辑方式是对不同类型的文本进入相应的编辑模式,即“主模式”(major mode)。Emacs针对多种文档定义了不同的主模式,包括普通文本文件、各种编程语言的源文件、HTML文档、TEX与LaTeX文档,以及其他类型的文本文件等等。   每种主模式都有特殊的Emacs Lisp变量和函数,使用户在这种模式下能更方便的处理这一特定类型的文本。例如,各种编程的主模式会对源文件文本中的关键字、注释以不同的字体和颜色加以语法高亮。主模式还提供诸如跳转到函数的开头或者结尾这样特地定义的命令。   Emacs还能进一步定义“次模式”(minor mode)。每一个缓冲区(buffer)只能关联于一种主模式,却能同时关联多个次模式。比如,编写C语言的主模式可以同时定义多个次模式,每个次模式有着不同的缩进风格(indent style)。
编辑本段Emacs快捷键
  掌握Emacs的快捷键可以说是Emacs爱好者的基本功,也是提高编辑速度和质量所必备的,但是初学者可能记不住那么多的快捷键必要时可以翻一下,最常用的快捷键数量也就数十个。Emacs的快捷键都是绑定于ctrl和alt(或称meta)上的,例如c-x就是ctrl+x,m-x就是alt+x。当然所有的按键都可以自定义。   当要退出编辑时C-x C-c 代表着,先按C-x 再按C-c才可以退出编辑环境.
...全文
363 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
L_thread 2011-03-17
  • 打赏
  • 举报
回复
`C-' Control-(即 Ctrl-),按住 Ctrl 键再按其他键
`M-' Meta-(或 Alt-),按住 Alt 键再按其他键;或按一下 ESC,再按其他键
`C-M-' Control-Alt-,按住 Ctrl 和 Alt 两个键再按其他键
point 位点。文档中的一个位置,一般是光标的左下角
mark 标记。由命令设置,用来定义/保存文档中的位置信息
region 区域。在 mark 和 point 之间部分,称为一个 region

RET 回车键
TAB 制表符键
ESC ESC 键
SPC 空格键
Backspace, DEL 退格键
Delete 删除键

=== 如果不知道 ===

C-x C-c 退出并关闭 Emacs

C-z
C-x C-z 退出并挂起 Emacs

C-x C-f 打开文件/目录
C-x i 插入文件内容
C-x C-r 只读方式打开一个文件

C-x u Undo( 想要Redo,动一下光标或按一下 C-g 再Undo :)
C-x C-s 保存文件
C-x s 询问保存所有未存盘文件
C-x C-w 文件另存为…

C-l 刷新窗口,并将当前行移至窗口中心。给定参数,可以设置
当前行的位置,不妨试试 M-0 C-l 或 M-- C-l 或 M-4 C-l

C-g 退出当前命令。如果你不知道Emacs正在干什么呢,多按几次
C-g,就会恢复到正常状态

=== 在线帮助 ===

C-h t TUTORIAL
C-h i Online Info

C-h c 给出键序列(简称键)绑定的命令名字
C-h w 由命令名字给出键的绑定

=== 给命令传参数 ===

C-u 给定参数前缀

M-0
...
M-9 参数0...9

M-- 负参数

=== 光标的移动 ===

C-a 行首
C-e 行尾

C-n 下一行
C-p 上一行
C-f 前进一个字符
C-b 后退一个字符

M-f 前进一个词
M-b 后退一个词
C-M-n C-M-p 括号间跳转

=== 搜索和替换 ===

C-s 增量搜索
C-r 向后增量搜索

M-x search-forward
搜索
M-x search-backward
向后搜索

C-M-s
M-x isearch-forward-regexp
正则表达式增量搜索
C-M-r
M-x isearch-backward-regexp
正则表达式向后增量搜索

M-x search-forward-regexp
正则表达式搜索
M-x search-backward-regexp
正则表达式向后搜索

ESC % 询问替换
M-x query-replace-regexp
正则表达式询问替换

M-x replace-string 替换
M-x replace-regexp 正则表达式替换


===区域的拷贝和粘贴===
* 区域是Mark和Point之间的部分,Point就是光标的左下角,Mark由命令设置。
* `Yanking ring'是一个存放文本的地方,从这里你可以拷贝删除(kill)的文本。
* `Yanking'表示插入刚刚删除(kill)的文本。

C-SPC
C-@
M-x set-mark-command
设置 mark
C-x C-x 交换 mark 和 point

C-w 将区域的文本删除,并放入yanking ring中
M-w 复制区域到yanking ring中

C-y 将yanking ring中最后一个区域插入当前缓冲区

M-y 按一次C-y后,多次按M-y,则用yanking ring中的其他区域替
换刚刚插入的区域

C-o 在光标后面插入空行
C-x C-o 将光标附近的空行去掉,多行的时候,第一次只剩一行,第二
次全部删除

C-d 删除一个字符(不能yank)
M-d 删除光标附近的一个词

C-x h 将整个缓冲区设置为区域(缓冲区尾是mark,首是point)

C-k 删除(kill)从光标处到行尾
L_thread 2011-03-17
  • 打赏
  • 举报
回复
自己设置快捷键,比如设置F4跳行,F5编译,F6调试
(global-set-key[f4] 'goto-line);
(global-set-key[f5] 'compile);
(global-set-key[f6] 'gdb);


M-! 执行shell命令
直接在终端中运行emacs emacs -nw
C-X 表示按住CTRL键, 然后按X, 再把CTRL, X一起放开.
M-X 等于先按 ESC键, 接著按 X键.
M-X 等于alt键.
C-X或 M-X的X没有大小写分别.
超过两个以上的按键命令, Emacs会在萤幕最下面一行显示你按过什么.这一行叫作mini buffer
结束Emacs按 C-x C-c
取消执行 C-g
C-p 向上移 (previous line)
C-n 向下移(next line)
C-f 向右移 (forward)
C-b 向左移 (backward)
C-v 下一页(view next screen)
M-v 上一页
C-L 重画萤幕
M-f 向前跳一个字(word)
M-b 往后跳一个字(word)
C-a 移到行头
C-e 移到行尾
M-a 移到句首 (M-a 到上一个句点后面,一个句子的起头.)
M-e 移到句尾 (M-e 到句点后面)
M-< 移到档头
M-> 移到档尾
C-d 删除游标目前指的后面的字
DEL 删除游标目前指的前面的字 (Delete键)
M-DEL 往回删一个字(word)
M-d 往前删 (游标后面)
C-k 删至行尾 (kill)
M-k 删到一句子结尾(删到句点) (kill)
C-x u 撤消操作
C-_ 也是撤消操作
C-k 剪切 (kill)
M-k 剪切 (kill)
剪切一段文字的方法: 将光标移到想要剪切的文字段开头, 用 C-@ (或 C-SPC )设标记( Mark set ), 将光标移到想要剪切的文字段末尾, 用 M-w 剪掉那段文字.
C-y 粘贴 (yank) , kill & yank 就是 cut & paste的意思.
C-x C-f 打开文件(可以用tab 或SPC键自动补全文件名)
C-x C-s 保存文件
C-x s 保存所有的文件
C-x i 插入文件(把另外的档案的内容读入目前编辑区内)
C-x 0 关掉目前的视窗
C-x 1 会让目前的视窗占满整个萤幕 (One Window), 取消/关掉其他的视窗.
C-x o 跳到另一个视窗
C-x 2 把目前的视窗切成两个 (水平分割)
C-x 3 (垂直分割)
C-x 4 是一串与视窗有关的指令.
C-x 5 则是扩展到X的视窗, 称为frame.
C-x 5 2 就是再开另一个X视窗 (frame).
C-x C-b 看目前有那些buffer (buffer就是emacs放开起的档案的地方).
C-x b 然后在minibuffer输入buffer的名字, 可以切换编辑buffer, TAB键也有作用. 有些内部的buffer (就是没有档案的buffer), 是用*开头和结束, 这个也要打, 如*scratch*
按 M-x 之后就可以打一个Emacs命令来执行
C-x C-c 就是结束Emacs,比较常用的是C-z
C-z 把Emacs暂停, 回到命令列. 当你下次再需要编辑时, 打fg %emacs 或者 fg 就可以把Emacs唤醒. 在X下, C-z 会把emacs缩成icon.
L_thread 2011-03-17
  • 打赏
  • 举报
回复
如果直接输入,键盘上的数字、字母以及符号仅仅插入该字符。
常用的函数被绑定到 Ctrl 或者 Meta 键所对应的快捷键上(例如 C-e 到行尾, C-_ 是撤消, C-y 是粘贴)。
如果绑定到前缀 Ctrl 上的函数操作对象是一个字符,那么绑定到前缀 Meta 上的函数对应的的操作对象则是一个词(如果这快捷键有意义的话)。类似的,如果前缀 Ctrl 对应的快捷键操作对象是一行,那么前缀 Meta 对应的快捷键将操纵句子。例如: C-t 互换两个字符,而 M-t 互换两个词。 C-e 移动到行尾,而 M-e 移动到句子的尾部。
一些不是特别常用的函数绑定到前缀 C-x 上。例如 C-x C-c 退出 Emacs, C-x 2 水平分割当前 window 。
与某个 mode 相关的的函数被绑定到前缀 C-c 上。
最不常用的函数根本没有键绑定,而是使用 M-x 然后输入函数名来调用他们。
前缀 C-x 4 被保留作操作另外一个 window 用的函数,例如 C-x 4 C-f 在另外一个 window 里面打开文件。类似的, C-x 5 被绑定到操纵其他frame 的函数上面: C-x 5 C-f 才另外一个 frame 里面打开文件。注意到这两个函数与 C-x C-f (打开文件) 有同样的键绑定,只是在中间插入了 4 或者 5,这并不是一个巧合。

1,069

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧