Wednesday, June 11, 2008

Emacs 常用命令 (持续更新)

C-x C-f
打开文件

C-x C-s
保存, 输入"!"保存所有缓冲区

C-x d
Emacs中的目录管理, 类似Vim的":e .", 下面是一些常用命令:
^访问目录的父目录
q退出缓冲
R重命名
D删除文件
C-x C-f创建文件
+创建目录
g刷新缓冲所有文件 (这很有用, 当你新建了文件以后, 需要手动刷新)


C-@
用来作为一个选定区域的开始标记, 由于对于现在的键盘来说, 要按出这个组合键实在是很麻烦, 在Emacs中文站上找到一行.emacs的配置, 把这个组合键替换成了C-x <SPC>, 但是因为这个组合键同GDB的设置断点的组合键冲突, 于是我稍微修改了一下:
;; Replace `C-@' to `C-^'.
(global-set-key (kbd "C-^") 'set-mark-command)


M-w
复制选定的文本, 这里有一个简单的Emacs Lisp函数可以实现当没有选定任何本文的时候, 使用M-w来选定一行文本:
;; Make `M-w' can copy a line.
(defun xiaogaozi-kill-ring-save (&optional n)
  "If region is active, copy region. Otherwise, copy line."
  (interactive "p")
  (if mark-active
      (kill-ring-save (region-beginning) (region-end))
    (if (> n 0)
        (kill-ring-save (line-beginning-position) (line-end-position n))
      (kill-ring-save (line-beginning-position n) (line-end-position)))))
(global-set-key (kbd "M-w") 'xiaogaozi-kill-ring-save)


C-x h
选定整个缓冲区

C-w
剪切选定的文本

C-y
粘贴

C-/
撤销

C-x r k
剪切选定的矩形区域

C-x r y
粘贴

C-x r t STRING <RET>
替换选定矩形区域

C-x r o
在选定矩形区域前插入一个空格

C-x r M-w
复制选定的矩形区域, 但这需要插件的支持, 可以在这里下载rect-mark.el, 然后修改.emacs文件:
;; rect-mark.el
;; Support for marking a rectangle of text with highlighting.
(define-key ctl-x-map "r\C-@" 'rm-set-mark)
(define-key ctl-x-map [?r ?\C-\ ] 'rm-set-mark)
(define-key ctl-x-map "r\C-x" 'rm-exchange-point-and-mark)
(define-key ctl-x-map "r\C-w" 'rm-kill-region)
(define-key ctl-x-map "r\M-w" 'rm-kill-ring-save)
(define-key global-map [S-down-mouse-1] 'rm-mouse-drag-region)
(autoload 'rm-set-mark "rect-mark"
  "Set mark for rectangle." t)
(autoload 'rm-exchange-point-and-mark "rect-mark"
  "Exchange point and mark for rectangle." t)
(autoload 'rm-kill-region "rect-mark"
  "Kill a rectangular region and save it in the kill ring." t)
(autoload 'rm-kill-ring-save "rect-mark"
  "Copy a rectangular region to the kill ring." t)
(autoload 'rm-mouse-drag-region "rect-mark"
  "Drag out a rectangular region with the mouse." t)


C-x r <SPC> X
保存当前光标位置到寄存器X

C-x r j X
跳转到寄存器X存储的位置

C-x r s X
保存选定区域到寄存器X

C-x r i X
插入寄存器X中保存的内容

M-% STRING <RET> NEWSTRING <RET>
普通的查找替换, 选定特定区域之后就只会在其中查找.

C-M-% REGEXP <RET> NEWSTRING <RET>
支持正则表达式的查找替换, 其余同上.

C-M-n
跳转到下一个匹配的括号

C-M-p
跳转到上一个匹配的括号

M-g M-g
跳转到指定行

M-;
多行注释, 如果没有选中任何区域, 则在当前行尾添加注释.

C-M-\
多行缩进

No comments:

Post a Comment