星期六, 一月 01, 2005

emacs 笔记

C-h,i 到info页面获得帮助, q假退出, 回到原编辑buffer
flyspell: 拼写检查
M-q: 自动断行

键表示:
C: Ctrl, M: Esc 或 Alt, M-x: M+x 或 右手win和Ctrl之间的保存键(可能会随版本有变动).

基本快捷键:
C-x :重复上一次命令;
C-x 左右方向键:切换buffer;
C-k: 删除从光标到行尾的内容;
C-u 0 C-k (或者C-u C-0 C-k): 删除从光标到行首的内容;
C-x 2: 开成两个窗口;

打开和保存:
C-x,C-f 打开; C-x,C-r 以只读方式打开; C-x C-s 保存; C-x C-w 另存为...;

自动对齐: tab
全部自动对齐, 就象每行用了tab键一样的效果: C-M-q

光标移动:
'M-<'开始,'M->'结尾of buffer; 'C-f'forward一字符, 'C-b'backward一字符, 比方向键顺手一点点
C-左右方向键, 以单词为单位移动光标, 比单独用方向键快一点
'C-x r R'设标记R, 'C-x r j R'回到标记R处(也可'C-x j R', 少一个r), 可设多个标记

latex模式:
'C-c,(' 设置label, 'C-c,)'引用label; 'C-c,['建立citation(即引用参考文献), 'C-c,]'(没有反应)
C-c, C-o,自动输入\begin{***}\end{***}
C-c C-f:自动编译tex文件(不好用, 还不如shell下的命令)

fortran模式:
在emacs的info手册中有专门一节讲fortran的, 也有与其他一些程序语言结合的章节, 里边有详细的介绍.
f77的续行: C-M-j, C-c C-d: 逆过程

怎样用粘贴从其他窗口拷贝的内容?
有时候从其他窗口拷贝的内容emacs并不认识, 粘贴不了. 这是因为内容是由几个缓冲区存放的, emacs有时找的不是主缓存, 所以粘贴不了或者粘贴的不是想要的. 有两个解决办法:
1. 在拷贝(或者选中有时也可看成拷贝, 但是在比如firefox中选中和拷贝的是放在两个地方的, 用Ctrl-V和鼠标中间输出的不一样, 这是好事)之后, 来到emacs窗口,
M-x clipboard-kill-region
M-x clipboad-yank
2. 用autocutsel 自动纠正emacs这种非X11的错误,
安装并 .xinitrc 中添加一行:
autocutsel &
要把它放在运行窗口管理器之前,否则它不会被运行!
3. 在X窗口中复制啊粘贴啊, 瞎折腾折腾, 有时侯emacs又可以象其他X窗口一样, 可以粘贴别处拷贝的内容了.


待解决:
想要帮定shift+方向键作为选定用, 这个组合键反正还没有用.
从emacs中往别处拷贝的汉字都是乱码, 怎么办? (暂时用kwrite打开拷贝)
怎样设置, 把win键拿来当M-用?
怎样设置使得自动加载flyspell-mode?

(等我载mozilla composer中编辑修改完准备退出的时候, 总有按C-x,C-s的冲动&.& )


在linuxsir上看到的, 先放这儿, 以后再整理:

选取好程序中的文本块后(可以用C-x h选取整个程序文本),按Esc C-\就会按默认的缩进样式排版该文本块。

可以打印一张refcard,一般常用的DD都搞定了!

这里是我常用的一些:

;; -----------------------------------------------------------------------------------------
;; Some useful commands:
;;
;; C-h w command - to check which key bind to the command
;; C-h k key - to check which command the key bind to
;; C-j - run the lisp command(put the cursor at end)
;;
;; C-c C-t - change mode to hungry-state and auto-state
;; C-c C-a - change mode to auto-state
;; C-c C-d - change mode to hungry-state
;; C-c C-e - expand macro
;; C-c C-\ - add '\' at then end of the line
;; C-u C-s - regular expression search
;; C-x 5 2 - open new frame
;; C-x 5 0 - close new frame
;;
;; M-; - insert a comment
;; M-\ - fixup whitespace
;; M-/ - auto complete the word
;; M-l - downcase-word
;;
;; Mark the region, then
;;
;; C-x r k - kill rectangle
;; C-x r t - insert word in columns

我常用的快捷键:

C-x C-f :打开/新建文件
C-x S :保存所有缓冲区文件
C-x C-v:在当前缓冲区打开文件
C-x k :关闭当前缓冲区
C-x i : 在当前光标位置插入文件
M-x replace-string: 一次性替换字符串
M-x % : 循环替换。
C-s
C-r :查询

C-@ :设置标记,然后选取
C-w :相当于剪切。
M-w :相当于复制
C-y :粘贴
M-y : 循环粘贴。

C-o:开新行

C-f, C-b, C-p, C-n, M-f, M-b, C-v , M-v , C-l, M->, M-<移动。

C - !, 一次性执行shell, M-x shell, 启动shell外壳。
M-x compile:编译程序。

C-x m进入发邮件界面
C-c C-c 发送后离开
Esc x c++-mode,c-mode,python-mode....开始语言模式
C-x C-b列出缓冲区东东
呵呵,上面是我最常用的,

最初由 fog_proxy 发表
问一个问题,我emacs现在在Xwindow下用得很好,唯一的问题是显示的中文字体过大,不知道该如何把字体调小呢?以前也发贴请教过,不过仍然是没 有解决。

Emacs只能使用固定宽度的字体。
用xfontsel命令查看一下可用的字体列表。
然后在~/.Xdefaults或~/.Xresources里修改这一句如:
emacs.Font: *fixed-bold-r-*-14-*-*

没有评论: