文档库 最新最全的文档下载
当前位置:文档库 › Emacs常用指令

Emacs常用指令

C-h c或k 根据快捷键查询命令
C-h w或a 根据命令反查快捷键 前者可自动补全,后者使用正则表达式
C-h i 进入TexInfo
m 进入MenuInfo
C-h v 查看变量的值
M-x set-variable 设定变量的值

Meta-\ 删除光标左右的空格(空格和TAB)
Meta-SPC 删除光标左右多余一个的空格或TAB(保留一个)
C-x b 切换buffer 可使用completion(自动补全)功能
C-x k 删除指定的buffer,若不指定,则删除当前buffer
C-x C-b 列出所有buffer
C-x o 切换buffer

C-x d M-x dired 打开目录
# 将所有自动存储文件标记为删除
~ 将所有自动备份文件标记为删除
%d regexp RET 将符合regexp的文件标记为删除
x 将所有标记为删除(D)的文件真正删除
*标记(指令前可加数字n,表示从当前光标处执行n次指令,如3m表示将当前光标向后连续3个文件作上*标记):
m 将当前文件标记*
* 将所有可执行文件标记*
s 按日期/文件名排序显示
v 阅读光标所在的文件
q 退出阅读的文件
d 标记为删除
x 执行标记
D 马上删除当前文件
C 拷贝当前文件
R 重命名当前文件
H 新建一个硬连接
S 新建一个软连接
M 使用chmod改属性
+ 新建文件夹
Z 压缩文件
! 对光标所在的文件执行SHELL命令
g 刷新显示
i 在当前缓冲区的末尾插入子目录的内容
[n]m 标记光标所在的文件,如果指定n,则从光标所在的文件起后n个文件被标记
[n]u 取消当前光标标记的文件,n的含义同上
t 反向标记文件 %-m 正则标记
q 退出目录模式
说明:在目录模式中,如果输入!,在命令行中包含*或者?,有特殊的含义。*匹配当前光标所在的文件和所有标记的文件,?分别在每一个标记的文件上执行该命令。

执行SHELL命令
M-x shell 打开SHELL
M-! 执行SHELL命令 (shell-command)
M-1 M-! 执行SHELL命令,命令输出插入光标位置,不打开新输出窗口
M-| 针对某一特定区域执行命令(shell-command-on-region), 比如 C-x h M-|uuencode

窗口操作
C-x 0 关闭本窗口
C-x 1 只留下一个窗口
C-x 2 垂直均分窗口
C-x 3 水平均分窗口
C-x o 切换到别的窗口
C-x s 保存所有窗口的缓冲
C-x b 选择当前窗口的缓冲区
C-x ^ 纵向扩大窗口 C-u n C-x ^ 纵向扩大当前窗口n行
C-x } 横向扩大窗口

文件操作
C-x C-f 打开文件,出现提示时输入/username@host:filepath可编辑FTP文件
C-x C-v 打开一个文件,取代当前缓冲区
C-x C-s 保存文件
C-x C-w 存为新文件
C-x i 插入文件
C-x C-q 切换为只读或者读写模式
C-x C-c 退出Emacs

编辑操作

C-f 前进一个字符
C-b 后退一个字符
M-f 前进一个字
M-b 后退一个字
C-a 移到行首
C-e 移到行尾
M-a 移到句首
M-e 移到句


C-p 后退一行
C-n 前进一行
M-x goto-line 跳到指定行
C-v 向下翻页
M-v 向上翻页
M-< 缓冲区头部
M-> 缓冲区尾部
C-M-f 向前匹配括号
C-M-b 向后匹配括号
C-l 当前行居中
M-n or C-u n 重复操作随后的命令n次
C-u 重复操作随后的命令4次
C-u C-u 重复操作随后的命令8次
C-x ESC ESC 执行历史命令记录,M-p选择上一条命令,M-n选择下一条命令
emacs将删除分为deletion和killing两种方式,类似windows下的删除与剪切的区别
C-d 删除一个字符 deletion
M-d 删除一个字 killing
C-k 删除一行(光标到行尾)
M-k 删除一句
C-w 删除标记区域
M-w 复制标记区域
C-y 粘贴删除的内容 注意:C-y可以粘贴连续C-k删除的内容;先按C-y,然后按M-y可以选择粘贴被删除的内容
C-@或C-SPC 标记开始区域(笔记本上似乎是C-2)
C-x h 标记所有文字
C-x C-x 交换光标位置和区域标记区开头(回到上一个Mark位置)
C-_ or C-x u 撤消操作
C-x l 某页的总列数,同时显示当前point位置之前与之后还有的列数.
C-x = 游标所在栏位的字元资料
C-s/C-r 正向/反向查找
1.输入要搜索的内容,也可在出现搜索框后使用C-y(当前光标至列尾),C-w(光标后的一个字)将搜索内容置入搜索框中
2.直接回车,则进入传统搜索方式(1与2的区别在于前才会边输入边搜索,而后者输入完毕后才开始搜索),此时输入探索内容,此时C-w表示以Words方式搜索,C-y则会取出kill-ring的内容.
M-x re-search-forward/re-search-backward 正向/反向使用正则表达式查找
M-x replace-string RET string RET newString RET/M-x replace-Regexp RET Regexp RET newString RET
查找string或符合Regexp(正则表达式)的字符串,替换成newString,过程中不询问是否同意
M-x query-replace RET string RET newString/M-x query-replace-Regexp RET Regexp RET newString RET
与前面的替换大致相同,只是在查询到内容后出出现询问选择,可使用以下选项: RET/q DEL/n SPC/y ! . (具体含义可输入?查看)

自动运行perl代码,加入~/.emacs 快捷键M-O
(defun runperl()
"run perl,执行当前缓冲区的Perl程序"
(interactive)
;(save-buffer)
(let ((filename buffer-file-name)
(cmd "")
(oldbuf (current-buffer))
(end (point-max)))
(if filename
(save-buffer)
(save-excursion
(setq filename (concat (getenv "tmp") "/temp.pl"))
(set-buffer (create-file-buffer filename))
(insert-buffer-substring oldbuf 1 end)
(write-file filename)
(kill-buffer (current-buffer))))
(setq cmd (concat "perl -w " filename))
(message "%s ..." cmd)
(shell-command cmd)))
(global-set-key[(meta o)] 'runperl) ;bind-key alt+o:runperl

相关文档