Emacs中文FAQ
来源:互联网 发布:地图数据购买 编辑:程序博客网 时间:2024/05/19 22:50
Emacs中文FAQ
- 键绑定
-
- 常用的键绑定
- 光标移动
- 参数设置
- 模式相关
-
- cc-mode
- emacs-lisp-mode
- hs-minor-mode
- 矩形模式
- text-mode
- flyspell-mode
- auto-fill-mode
- misc
- 文本编辑
- 常用命令
- 查找与替换
- some tips about emacs
- 参考资料
键绑定
- 记住在所有要绑定到快捷键的函数上面加上(interactive)关键字,否则,会发生(wrong-type-argument commandp my-command)的错误
对于要绑定到鼠标的函数,要在函数声明中指定参数(event),在修饰段,加入(interactive "e"),然后才能绑定 - 对于要传递参数的函数,可以用lambda匿名函数来实现
(global-set-key [(prior)]
或则
'(lambda () "Previous" (interactive) (scroll-down 1)))(global-set-key [(prior)]
记住对于 global-set-key函数需要的第二个参数是一个symble或者是list
(function (lambda () "Previous" (interactive) (scroll-down 1)))) - (read-event)可以得到emacs的键码的内部表示
- 如果你觉得每次为了关闭一个buffer都要按C-x k很麻烦,那么你可以这样绑定:
(global-set-key (kbd "<M-f4>") (lambda () (interactive) (kill-buffer (current-buffer))))
- 在emacs中可以用buffer-menu调出bufferlist窗口,建议绑定到Menu key上,并且将point转到buffer List上面。很方便的,与之相比,C-x C-b则显得有点慢。建议用buffer-menu
- 在emacs中交互的绑定键
M-x global-set-key
常用的键绑定
- 打开文件
C-x i #插入一个文件的内容
C-x r #以只读的方式打开一个文件 - 查找和替换
M-% #确认替换
- 其他
C-x ESC ESC #调出上一条复杂命令
C-x C-q #清除一个窗口的只读属性
M-/ #自动补齐
M-; #注释
C-c C-e #扩展宏
C-c C-/ #在当前区域的行尾加入"/"
光标移动
- 如何在匹配的括号之间移动光标
`C-M-n'
Move forward over a parenthetical group (`forward-list').`C-M-p'
Move backward over a parenthetical group(`backward-list').`C-M-u'
Move up in parenthesis structure (`backward-up-list').`C-M-d'
Move down in parenthesis structure (`down-list'). - emacs用M-.可以跳到tag定一处,要回来可以用M-即可
参数设置
- Emacs 变量可在命令行中设置(如果您知道它们的名字和适当的值),设置方法是输入 M-x set-variable,然后在提示符后输入变量名和它的新值。
模式相关
cc-mode
- 在emacs中要想打开诸如:#include
之类的文件,必须保证ffap-c-path包含stdio.h的路径 - emacs可以实现程序变量得自动对齐功能。要达到这样的效果
int main() {
选择区域,让后M-x align即可
int aa;
unsigned int bb;
double cc;
} - 如何使""成为语法的单词的一部分. (add-hook 'c-mode-hook (lambda () (modify-syntax-entry ? "w" c-mode-syntax-table))) (setq c++-mode-hook c-mode-hook)
emacs-lisp-mode
- 再emacs中编译整个目录下的.el文件 输入 [Alt]-x 。 当提示输入命令时,输入 byte-force-recompile [Enter] 。
- 如何再emacs下编译整个目录下的*.el文件 两个办法,一是在dired里面用m标记,然后用B编译 还有就是用emacs的批处理:
emacs -batch -f batch-byte-compile *.el
hs-minor-mode
- hs-minor-mode 就可以用C-c @ C-c 进行代码隐藏了
矩形模式
Keystrokes Command name Action C-x r k kill-rectangle Delete a rectangle and store it. C-x r d delete-rectangle Delete a rectangle and do not store it. C-x r y yank-rectangle Insert the last rectangle killed C-x r cclear-rectangle
Using spaces, blank out the area marked as a
rectangle and do not store it. C-x r o open-rectangle Insert a blank rectangle in the area marked. C-x r r r
copy-rectangle-to-register
Copy rectangle to register r (where r is any
character) . C-x r i r
insert-register
Insert rectangle from register r (where r is any
character). none)
delete-whitespace-rectangle
If a rectangle includes initial whitespace,
deletes it, narrowing rectangle. C-x r t string Enter
string-rectangle
Change contents of marked rectangle to string (if
string is narrower or wider than rectangle,
dimensions change accordingly). (none) string-insert-rectangle Prompts for string and inserts rectangle.
text-mode
- 居中 M-s
flyspell-mode
启动flyspell-mode可以在输入的同时完成拼写检查. M-$提示如何修正auto-fill-mode
用于实现单词的自动折行misc
- 寻找下一个对应的tag匹配,menu-bar-next-tag,也可以用C-u M-.
- 递归建立TAGS文件
find ./ -name "*.[hc]" -type f -exec etags -a {} /;
文本编辑
- 每行显示30个汉字 (setq fill-column 60)放到.emacs M-x auto-fill-mode
- narrow 功能.用于隐藏文本,在进行string replace时十分有用 选中要保留的文本, 然后C-x n n 或M-x narrow-to-region 要展开文本: C-x n w 或 M-x widen
- emacs的自动排版用M-q
- window下面用emacs远程编辑文件,可以用 ftp方式:
C-x C-f RET /ftp:user@host:/path/test.txt
ssh方式: 下载plink.exe,将其路径加入PATH变量C-x C-f RET /ftp:user@host:/path/test.txt
- emacs下的su 可以用C-x C-f安下列方式实现su文件编辑
/su::/etc/foobar.conf
- 用空格代替tab (setq-default indent-tabs-mode nil)
M-x untabify
- 指定文件的编码方式:C-x RET f
常用命令
- 下一个错误 [C-x `]
- 列出 Emacs 自动识别的所有主要模式的方法是输入 M-x describe-variable,按 Enter,然后在小缓冲区的提示符后输入 auto-mode-alist。一些我常用的模式包括文本、c 和 SGML,有时还用 LISP。
- redo C-g C-/
- 左右滚屏 C-x < C-x >
- emacs执行shell命令,可以用 M-!来执行一个shell命令 也可以用C-u M-!将一个命令的结果插入当前的光标处.
- 用shell-command-on-region命令在选择的区域上面执行shell命令,快捷键是M-¦
- 列出emacs所有可用的颜色
M-x list-colors-display
- 更改正在编写的文件的编码 C-x RET f 编码名 RET
设置emacs打开文件的默认编码set-buffer-file-coding-system
如果你想用另一种不同的编码打开文件:revert-buffer-with-coding-system
- 如何在终端启动emacs.
emacs -nw
如果你不想每次都这样麻烦,可以在bash里面设置alias.如在你的HOME目录下的.bashrc文件中加入下面一行alias emacs='emacs -nw'
- 修改tages文件: M-x visit-tags-table
查找与替换
- emacs中要对换行进行匹配的查找和替换的话,请用C-q C-j来代替.既不是,也不是/n,这一点千万注意.
- 去掉一个文件中所有的空行
M-x query-replace-regexp ^^q [ret] [ret]
[note] ^^q的输入方式是 shift-6 C-q C-j
- 如何搜索cursor所在处的单词? C-s C-w
- 正则表达式搜索 C-A-r
- 切换查找时是否区分大小写 M-c (也就是在C-s M-c).
some tips about emacs
- windows下面远程编辑文件可以下载plink.exe, 放入path路径即可
C-x C-f RET /plink:reality@10.0.0.99:/home/reality/test.txt
- 捕捉程序的输出可以用
C-u M-! ls
- 如何让dired不显示隐藏文件 (setq dired-omit-files "^//.")
- 如何在dos和unix文件类型之间转化
C-x RET f unix #转化成Unix文件格式
C-x RET f dos #转化成dos文件格式 - abbrevs
C-SPC
#include <stdio.h>
...
#include <stdlib.h>
C-u 0 C-x a g includec RET
now create a new buffer and type
includec RET
info/emacs/abbrevs for detail参考资料
以下是使您更快掌握 Emacs 的一些参考资料:
- Linux 文档计划(Linux Documentation Project)中的 The Emacs Beginner HOWTO 是不错的入门读物。
- The GNU Emacs Manual 是该编辑器的最终参考资料,链接来自 GNU Emacs 主页。
- 如果您更喜欢 XEmacs,那么您需要访问 XEmacs 主页。
- 在 IBM 的 developerWorks 站点,您可以找到各种参考资料,用于扩展您对 Emacs 的使用,例如 Using Regular Expressions。
- 还有,在 Emacs 的讨论中如果不讲它在 Linux 文本编辑器范围中的死对头,那么这种讨论是不完全的。请查看 vi intro - the cheat sheet method,自己看看它到底怎样。
- Emacs 的终级的首选的参考资料是永远流行的 Learning GNU Emacs 和 GNU Emacs Pocket Reference,均来自 O'Reilly。请在您喜欢的在线或传统书商那挑选它们。
- Emacs 的授权协议是自由软件基金的 GNU GPL。
- 如果您想获得更多关于 Emacs 的历史(和许许多多其它 UNIX 主题),请参见行话文件。
- Emacs中文FAQ
- Emacs中文FAQ
- 使用Emacs阅读邮件和新闻组:Gnus 中文FAQ
- emacs verilog mode FAQ
- [转]emacs 常用操作FAQ
- [转]emacs 常用操作FAQ
- Mysql中文字符FAQ
- Solaris中文FAQ
- SQLite 中文 FAQ
- VxWorks中文FAQ
- OpenSolaris/Solaris中文FAQ
- OpenSolaris/Solaris中文FAQ
- OpenSolaris/Solaris中文FAQ
- SQLite 完整中文FAQ
- SQLite 中文 FAQ
- Starteam 中文FAQ
- UML中文FAQ
- VxWorks中文FAQ
- 每年这时候都有点搞笑的言论
- 善于捂股乃牛市赚大钱不二法门
- 自定义DataGrid翻页控件(示例代码下载)
- Drag拖放数据操作示例
- Microsoft Platform SDK For VC6.0
- Emacs中文FAQ
- .Net集合类型大全,只要灵活运用可以节省很多开发时间和提高程序运行效率
- 人生路上好文章[收藏]
- 程序员网站资源宝库
- Windows编程和面向对象技术
- DataGrid用法集锦[收藏]
- 嵌入式系统网址大全
- 配置三层交换的综合案例
- QuickSort代码实现