玩转Emacs

Posted on Jul 31, 2013

思维导图文件下载

快捷键

粘帖:c-y

新建/打开文件:c-x c-f

替换打开的文件:c-x c-v

保存文件: c-x c-s

写文件(需要输入文件名,回车默认不变): c-x c-w

关闭buffer: c-x k

撤销:c-_或c-x u

退出:c-x c-c

分割屏幕为2个:c-x 2

当前窗口最大化:c-x 1

切换窗口:c-x o

切换buffer:c-x b

buffer清单:c-x c-b

操作另外一个 window 用的函数:c-x 4

操纵其他frame 的 函数:c-x 5

执行某个函数:m-x 输入函数名

把一个文件插入到另一个文件中:c-x i

简单的目录清单:c-u c-x c-d或c-x c-d

查看Unix命令帮助:m-x man

修改了emacs配置不用重启:M-x eval-buffer

删除文本:c-d或Del

删除单词:m-d

删除本行文本:c-k

  • 删除一行文本:c-k c-k

删除从行首到光标位置文本:m- - c-k

恢复最近一次删除内容:c-y

依次恢复删除内容 m-y

牛B的EmacsVC

进行下一个合理的VC操作:c-x v v

  • 让当前文件进 入下一个正常的版本控制状态
  • 当你提交的时候,Emacs会弹出一个buffer让你填写日志,填完后按c-c c-c

恢复操作,恢复到上一次check out的 状态并解除锁定:c-x v u

显示一个目录下所有注册到版本控制下的文件:c-x v d

  • 执行VC命令可以不用加C-x前缀

产生一个diff报告:c-x v =

取出当前buffer在仓库里的指定版本并在另外一个窗口中显示出来:c-x v ~

显示一个文件的历史和日志:c-x v l

把文件注册到版本控制系统里面去: c-x v i

在文件里面插入version control headers:c-x v h

check out一个named project快照:c-x v r

  • 一个工程的快照就是把一个工程里面各个文件的某个版本号联系在一起而得到的 一个单元,大多数的版本控制允许你用一个符号名称来标记一个快照

创建一个named project快照:c-x v s

丢弃一个已经保存的版本:c-x v c

更新一个GNU-style的ChangeLog文件:c-x v a

mode line上会显示这个文件所 使用的version control系统的名字以及这个文件的版本号.当两者之间是一个“-”时,说明这个文件还没有check out,是“:”时说明已经 被 check out

要比较的文件名以及两个 版本号:C-u C-x v =

Ediff

Ediff是Emacs里面非常丰富强大的一个的一个模块

启动的三种办法

  • 用 vc-resolve-conflicts 启动 Ediff 来解决冲突
  • 手工启动 Ediff 来比较两个文件,比如你手动获取的某几个版本的文件
  • 用 ediff-revision 启动 Ediff 来比较版本之间的异同

TRAMP

用于远程文件编辑

 /host:filename
 /user@host:filename
 /user@host#port:filename
 /method:user@host:filename
 /method:user@host#port:filename
 例如:本地root权限文件用/sudo@host#post:filename
 其他电脑FTP目录文件/ftp:user@host#port:filename

一般说明

在Emacs文档中:

C- 意思是按住 Ctrol 键

M- 意指 Meta 键 (在大多数键盘上指 Alt 键)

DEL 意指退格键 (不是 删除(Delete) key)

RET 意指回车键 SPC 意指空格键

ESC 意指Escape键

TAB 意指Tab键 像 “C-M-” (or “M-C”) 这样连在一起的意味着同时按住 Control 和 Meta 键

特殊

输入换页符

  • c-q c-l

重复执行命令:m-n(n是重复次数)

  • 例如:m-500 c-n表示向下移动500行

重复执行命令:c-u n(n是重复次数)

  • 例如:c-u 500 c-n表示向下移动500行
  • 如果没有输入n,那么默认执行4次
  • 如果输入c-u c-u,那么执行16次

重新绘制画面:c-l

光标移动

上:c-p

下:c-n

左:c-b

右:c-f

到行尾:c-e

到行首:c-a

右移一个单词:m-f

左移一个单词:m-b

右移一个句子:m-e

左移一个句子:m-a

下移一个段落:m-}

上移一个段落:m-{

如果有分页符,到上一页 c-x[

如果有分页符,到下一页 c-x]

向上移动一屏:m-v或PgUp

向下移动一屏:c-v或PgDn

到达文件开头:m-<或Home

到达文件结尾:m->或End

快速到达第n行:m-x goto-line n

快速到达第n个字符:m-x goto-char n

帮助

完整文档:c-h i

快速指南:c-h t或F1 t或m-x help

  • k -鍵盤設定為何?
  • f -函式功能為何?
  • m -在目前模式下的鍵盤設定為何?
  • w -某個函式設定到哪個鍵上?
  • a -和某個字串相關的函式?

查询所有前缀的快捷键:按了前缀后再输入c-h就会提示

查询函数:m-x apropos

获取命令列表: m-x 命令首字母

显示使用的包清单:m-x list-packages

显示变量值:F1-v 变量名

组合键

常用键:c-n(n是任何键)

次常用键:m-n(n是任何键)

其他常用键:c-x something

特殊命令:c-c something

无法绑定的命令:m-x long-command-name

Shell模式

翻到上一条执行过的命令:m-p

翻到更早执行过的命令:m-n

自动删除上一个命令的执行输出:c-c c-o

Dir模式

进入模式:c-x f或c-x d

向下移动:空格或c-n或n

向上移动:Del或c-p或p

预览文件内容/返回:v/q或c-c

  • 搜索:s

修改文件内容:f

给文件加上待删除标志:d

撤销标志:u

批量删除文件:x

立刻删除文件:D

复制文件:C

重命名文件:R

压缩/解压:Z

比较文件内容:先标记后按=

文件上运行Unix命令:!

给文件加上待操作标志:m

用正则表达式选取文件:%m正则表达式

创建子目录:+

对多个文件进行查询和替换:Q

从磁盘上重新读入目录:g

打印文件:P

提出:q

块编辑模式

启动cua模式:m-x cua-mode

启动块编辑:c+回车

剪切:c-x

复制:c-c

粘帖:c-v

改变配色方案

安装color-theme.el

输入m-x color-theme-select选择配色方案

操作文本块

剪切:c-w或shift-del

全选:c-x h

选择整段:m-h

选择某段:鼠标左键按住拖动

选择当前页面:c-x c-p

编辑技巧

交换两个字符位置:光标移动到第二个字符然后c-t

交换两个单词位置:光标移动到两个单词中间空白处然后m-t

交换两行位置:c-x c-t

单词首字母改为大写:光标移动到首字母然后m-c

单词全部改为大写:光标移动到首字母然后m-u

单词全部改为小写:光标移动到首字母m-l

处理光标到词尾部分字符

进入/退出改写模式:insert键

用文件内容替换缓冲区:m-x revert-buffer

放弃当前命令:c-g

撤销上一次编辑:c-x u或c-_或c-/

从自动保存备份文件恢复内容:m-x recover-file

一般每隔300次击键自动保存一次

重命名buffer:m-x rename-buffer