shortcut

fancyoung edited this page Feb 26, 2014 · 50 revisions

Shortcuts

说明: C-* (Ctrl组合键), M-* (Alt组合键), <SPC> (空格键), <RET> (回车键), <DEL> (退格键(不是Delete删除键))。 注意大小写。

常用

C-x h 全选
M-; 加注释
M-. ctags查找(需要安装ctags)
F5 a M-y 显示复制历史(anything)
C-M-<SPC> 往后选中单词,但鼠标位置不变
C-M-k 删除单词(与M-k类似)
C-l 当前行到屏幕中间
M-r 在当前页面上中下转换(前加C-u 可控制行号)
C-M-(n/p) 段落跳转
C-h r 帮助教程
M-! shell
C-u M-! shell输出到当前窗口
C-@ region,进入选择(mark)模式
C-x C-x 在mark前后跳转
C-q C-j 回车
C-x l 查询当前行+文件行数
C-x C-= 放大字体,可连续按C-=(=其实是+键)
C-x C– 缩小字体,可连续按
C-x C-0 恢复原字体
M-x find-name-dired 批量替换目录里文件内容
M-x revert-buffer reload当前文件

自定义

C-c C-c 全局搜索文件
C-c <SPC> 空格显示开关
C-c n 清除buffer
C-x ^ 合并到上一行
C-F1 hs-minor-mode模式里折叠展开切换
C-F10 开关菜单
C-c C-\ goto-last-change

更多

M-x delete-trailing-whitespace <RET> 删除行尾空格
M-x org-mode 进入结构化编辑模式org-mode
M-x cua-mode 进入列编辑模式cua-mode
M-x hs-minor-mode 进入折叠/展开模式hs-minor-mode
M-x linum-mode 显示行号
M-x viper-mode vim模式
M-x dired / C-x d 进入目录模式
F5 C-h 打开anything的帮助
M-x woman 看man的工具(with out man)
M-x count-matches 匹配的数量
M-x replace-regexp 正则替换
M-x ediff 对比文件
M-x ediff-buffers 对比buffer里的文件
M-x replace-string RET C-q C-m RET RET 全文替换 ^M(win换行符)
M-x erc-select 进入ERC(IRC工具)
M-x flush-lines ^$ 删除空行(“^$”为正则匹配空行)

窗口操作

C-x 2 垂直拆分
C-x 3 水平拆分
C-x o 到下一窗口
C-M-v 滚动下一窗口
C-x 4 b 在另一窗口打开缓冲
C-x 4 C-o 在另一窗口打开缓冲,但不选中
C-x 4 f 在另一窗口打开文件
C-x 4 d 在另一窗口打开文件夹
C-x 0 关闭当前窗口
C-x 1 关闭其它窗口
C-x 4 0 关闭当前窗口和缓冲
C-x ^ 增高当前窗口(不能用?)
C-x { 将当前窗口变窄
C-x } 将当前窗口变宽
C-x - 如果窗口比缓冲大就缩小
C-x + 所有窗口一样高

大小写

M-c 首字母大写
M-u 词大写
M-l 词小写

#org-mode

链接(格式为[ [ link ] [ description ] ])

C-c C-o 跳到相应链接
C-c & 回跳

输出

C-c C-e h 输出org为html

矩形操作

  • 可以进入#cua-mode
M-x cua-mode 进入列编辑模式
C-<RET> 开始选择,用Enter键在四个角切换
  • 或者通过`C-<SPC>`或`C-@`标记起始位置,然后移动到结束位置
C-x r k 剪切一个矩形块
C-x r y 粘贴一个矩形块
C-x r o 插入一个矩形块
C-x r c 清除一个矩形块(使其变成空白)
C-x r t 在选定区域的所有列前插入样的字符

dired-mode

C-x d 进入目录模式(同M-x dired)

标记文件

m 标记文件
u/U 去除标记/all
t 标记互换

操作文件

R 文件重命名/移动
C 复制文件
+ 创建目录

访问

v 以view查看(按q退出)
\^ 访问父目录
q 退出缓冲

折叠/展开 #hs-minor-mode

M-x hs-minor-mode 进入模式
C-c @ C-h 折叠(block hide)
C-c @ C-s 展开(block show)
C-c @ C-M-h 全部折叠
C-c @ C-M-s 全部展开
C-c @ C-l 折叠同级(hide level)
C-c @ C-c 切换(toggle hidding)

立即更新Emacs配置(任选其一)

C-x C-e 更新光标前一条语句
M-x eval-last-sexp 使.emacs中光标前的那一条语句立刻生效。
M-x eval-region 使.emacs中选中的region中的语句立刻生效。
M-x eval-buffer 使当前的buffer中的设置语句立刻生效。
M-x load-file ~/.emacs 载入.emacs文件,从而使其中的设置生效。

插件

rinari (for rails)

C-c c controller
C-c m model
C-c v view
C-c h help
C-c r rspec
C-c j javascript
C-c s stylesheet
C-c f file(不常用,现在一般用C-c C-c)

yari (ruby帮助)

C-c C-q 查当前词
C-c C-a 搜索

magit (for git)

C-c g 进入操作界面
\$ process?
g reload
s/S stage/all
u/U unstage/all
c comment
C-c C-c commit
P push
F pull
l log
w 显示当前分支与其它分支的关系

psvn (for svn, 左下角有红/绿灯来显示文件当前状态)

C-x v l 查看log
C-x v = 查看已做的修改
C-x v v commit
C-x v u 放弃修改
M-x svn-status 进入svn-status-mode

搜索(Search)

C-(s/r) 向下(上)进行增量搜索,(按回车进入普通搜索)
C-s C-w 搜索当前光标所在词

批量搜索文件夹内文件

方法1(仿佛不能处理子文件夹)
  1. C-x d 进入文件夹模式,并指定路径
  2. 在文件列表中通过 mu 对文件进行标记和取消
  3. 执行 Q ,并分别输入替换前后的文字
方法2 #find-name-dired
  1. M-x find-name-dired
  2. 选择相应目录
  3. 可以按 t 来选中所有文件
  4. Q ,分别输入替换前后的字符串
  5. 用空格键确认修改,用 n 键跳到下一个

参考: http://stackoverflow.com/questions/270930/using-emacs-to-recursively-find-and-replace-in-text-files-not-already-open

其它

  1. Emacs远程SSH编辑文件
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.