Chinaunix首页 | 论坛 | 博客
  • 博客访问: 584640
  • 博文数量: 213
  • 博客积分: 6789
  • 博客等级: 准将
  • 技术积分: 1947
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-01 17:11
文章分类

全部博文(213)

文章存档

2012年(9)

2011年(62)

2010年(99)

2009年(43)

分类: LINUX

2010-09-02 18:00:34

emacs 基本操作: 
关于打开关闭:
`C-x C-f 文件名' -- 打开文件
C-x k :   关闭当前buffer
C-x b :   切换到前一个编辑的buffer
C-x C-b : 列出当前所有buffer
C-x C-s : 保存当前buffer
C-x s :   保存所有未保存的buffer,会提示你是否需要保存
C-x C-w : 文件另存为
C-x i:    插入其它文件的内容到当前缓冲
C-x v:    用将要读取的文件替换当前文件
C-x C-c'  -- 退出Emacs
C-x u'    -- 取消上一次操作
C-x 0     是将当前缓冲区隐藏(当同时显示多个分区时) 
C-x 1     是将当前缓冲区撑满(当同时显示多个分区时) 
C-x 2     横向划分编辑区 
C-x 3     纵向划分编辑区 
C-x 4 f   用新文件分屏

Ctrl+x k 彻底关闭该缓冲区,并释放和缓冲区关联的文件 

移动光标:
C-f     光标前进一个字符
C-b     光标后退一个字符
C-p     上移一行
C-n     下移一行

M-f     前进一个单词
M-b     后退一个单词

C-a     行首
C-e     行尾

M-a     句首
M-e     句尾

M-{     上一个段落
M-}     下一个段落

C-v     屏幕上卷一个屏
M-v     屏幕下卷一个屏

C-M-v   另一个窗口下卷一个屏幕
C-M-V   另一个窗口上卷一个屏幕

M-<     文件头
M->     文件尾

C-M-p   光标在'{'上,向上移1个大括号
C-M-n   光标在'}'后,向下移1个大括号

C-M-e   移动到函数尾

C-L      光标所在位置会显示于屏幕/窗格的中央。
M-g-g   跳到指定行
删除命令:
C-d     删除光标上的字符
C-a C-k 删除光标所在行

M-d     删除光标后的单词
M-DEL   删除光标前的单词

C-k     从光标位置删除到行尾
C-S-Backspace  删除当前行

C-g    取消当前要执行的命令
C-x u   恢复更新
C-S-backspace   删除当前行
C-Backspace     删除单词(光标前)

自动对齐:
 C-x h 全选
 C-M-\ 对齐

复制,剪切:
首先,需要选择想要复制的文本。第一步,标记区域头。假定您的光标已经位于行首,这时按下 Ctrl+ 空格。Emacs 将在小缓冲区提示 Mark set。然后,按Ctrl+a 移动到行首。从标记一直到光标当前位置之间的区域已被选中用于复制或剪切。然后,可以有两种方式:Alt+w (复制) 或者 Ctrl+w (剪切)。
最后,移动到您想要这段文本结束的地方并按下 Ctrl+y
C-c w 复制行 (向.emacs加入如下代码生效)
;; Function to copy lines 
;; "C-c w" copy one line, "C-u 5 C-c w" copy 5 lines 
(defun copy-lines(&optional arg) 
(interactive "p") 
(save-excursion 
(beginning-of-line) 
(set-mark (point)) 
(if arg 
(next-line (- arg 1))) 
(end-of-line) 
(kill-ring-save (mark) (point)) 
;; set key 
(global-set-key (kbd "C-c w") 'copy-lines) 


替换列:
用 rectangle, 用 C-x + 空格 选中区域
C-x r k          删除选中列
C-x r t string   替换选中列 string
 

自动补齐:
M-/
前提:
Emacs 自带的hippie-expand 
hippie-expand是 Emacs 自带的功能,
把M-/ 绑定到 hippie-expand,在.emacs文件中加入
;;绑定按键 
(global-set-key [(meta ?/)] 'hippie-expand)

hippie-expand 的补全方式。它是一个优先列表, hippie-expand 会优先使用表最前面的函数来补全。通常的设置是:

(setq hippie-expand-try-functions-list 
'(try-expand-dabbrev
try-expand-dabbrev-visible
try-expand-dabbrev-all-buffers
try-expand-dabbrev-from-kill
try-complete-file-name-partially
try-complete-file-name
try-expand-all-abbrevs
try-expand-list
try-expand-line
try-complete-lisp-symbol-partially
try-complete-lisp-symbol))
首先使用当前的buffer补全,如果找不到,就到别的可见的窗口里寻找,
如果还找不到,那么到所有打开的buffer去找,如果还……那么到kill-ring里,
到文件名,到简称列表里,到list,…… 当前使用的匹配方式会在 echo 区域
显示.
确实是非常好用,基本上我M-/就能到达我想要的了.

查找:
C-s C-w 选中, 跳下一个C-s, 跳上一个C-r 

全局替换:

首先键入 M-x 命令进入编辑器的小缓冲区,然后键入 replace-string 命令,编辑器提示用户输入要查找的字符串及要替换的字符串。 replace-string 命令不能实现正则表达式的替换,如果要使用正则表达式,必须使用 replace-regexp 命令。

查找替换:

C-space 圈中要替换的内容
M+% + 被替换的字符 + 替换成的字符  + !

其操作步骤如下:

M-% (然后会出现Query replace的字样)

Query replace:<被替换字符串>

Query replace <被替换字符串> with:<替换字符串>

Query replacing <被替换字符串> with <替换字符串>:(? for help)

查询替换命令的选项如下:

y 或者 空格 键 替换搜索到的字符串

n 或者 Del 键 取消替换搜索到的字符串

^ 回到前一个搜索到的字符串

! 替换所有没有替换的与模式匹配的字符串

ESC 键 退出本次查询搜索 


与其他查找命令一样,查询搜索命令不允许在输入的查找字符串中使用特殊字符。但如果想使用特殊字符,可以使用 query-replace-regexp 命令,要运行该命令,必须首先键入 M-x 命令进入编辑器的小缓冲区中。

置换:
C-t                    字符置换                           
M-t                    字置换                             
C-x C-t                行置换                             
C-M-t                  表达式置换

大小写:
M-u                    将一个字设置为大写                     
M-l                    将一个字设置为小写                     
M-c                    将一个字首字母设置为大写                 
C-x C-u                将一个区域设置为大写                   
C-x C-l                将一个区域设置为小写                   

窗口切换:
C-x 0 : 关闭当前窗口
C-x 1 : 将当前窗口最大化
C-x 2 : 垂直分割窗口
C-x 3 : 水平分割窗口
M-o (redefined) : 在窗口之间切换; C-x o 是默认命令
C-x 5 1/2/3/0 : 对frame类似的操作
C-x < : 窗口内容右卷
C-x > : 窗口内容左卷(这两个命令在垂直分割窗口后比较有用)
(C-u) C-x ^ : 加高当前窗口,如果有C-u,则每次加高4行
(C-u) C-x } : 加宽当前窗口
(C-u) C-x { : 压窄当前窗口
ESC C-v : 在其它窗口进行卷屏操作

重复次数:
C-u + 次数 + 命令
举例来说, C-u 8 C-f 向前移动 8 个字符。

错误恢复:
取消当前要执行的命令                            C-g
恢复系统崩溃后丢失的文件                        M-x recover-file
撤销更新                                        C-x u或C-_
使缓冲回复到初始内容                            M-x revert-buffer
Redraw garbaged scree   n                         C-l

与位置交换操作有关的命令:
  C-t        交换两个字符的位置
  M-t        交换两个单词的位置
  C-x C-t    交换两个文本行的位置
  按下M-x后在辅助输入区中输入"transpose-sentences"交换两个句子的位置,按下"transpose-paragraph"交换两个段落的位置


在emacs中运行shell命令:
M-! cmd:打开一个名为“*Shell Command Output*“的窗口,并把该命令的执行结果显示在其中。按下”C-x 1“组合键可以关闭这个窗口。由于Shell命令的输出是在一个编辑缓冲区里,因此我们可以对它进行编辑、保存等操作。

M-| cmd:运行Shell命令,并使用编辑窗口中选定的区域作为该Shell命令的输入,然后可以选择是否用该Shell命令的输出来替换编辑窗口中选中的区域。
C-u M-! cmd RET:执行一条Shell命令,并将其输出放到编辑区中光标所在的位置处,而不将其输出到”Shell Command Output“窗口。

M-x shell:运行一个子Shell,该子Shell对应于emacs中的一个名为”*Shell*"的缓冲区,此后,我们就可以交互式的运行Shell命令了。

M-x term:运行一个子Shell,该子Shell对应于emacs中的一个名为“*Terminal*”的缓冲区。使用该命令获得的子Shell是一个完整的Shell的模拟,与我们直接在Shell中操作没有什么差别。

M-x eshell:运行emacs shell。该Shell为emacs自己实现的一个shell,而前面运行的shell都为系统中的shell程序(例如:/bin/csh等)。我们可以通过设置变量shell-file-name来设置emacs所使用的默认shell。

http://blog.csdn.net/wild_horse/archive/2008/07/29/2731595.aspx

阅读(1027) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-09-05 14:59:10

Download More than 1000 free IT eBooks: http://free-ebooks.appspot.com