flw
有关 Emacs 使用技巧的内容请在这个帖子讨论。
有关 Emacs 使用技巧的内容请在这个帖子讨论。
鄙人不善于使用 Emacs,不过希望众位精于此道的朋友们各显神通。
arcsiny
有关 Emacs 使用技巧的内容请在这个帖子讨论。
请教一个应用上的问题:
我们这全是在linux下作开发的,大家平常编辑c文件 简单修改基本是VI,复杂点的 就用sourceInsight+samba到windows下 编辑。
楼主认为 以上方法跟emacs相比孰优孰劣?
刚开始偶还用过一段时间emacs,其中有一个据称是优势的是多窗口。一边编辑,一边编译。可是在17CRT下面,实在觉不出两个那样的窗口有什么优势?偶想象着象电视上 超级大屏幕那样的显示器上面玩emacs可能会很爽?
据说国外的大牛都是用emacs,可偶就是体会不出来。有人给点拨一下?
如果认为以上问题跟帖子主题不符,那就pass吧~
converse
有关 Emacs 使用技巧的内容请在这个帖子讨论。
楼上的问题我不清楚,我做linux下的开发很少,看来cu用emacs的很少,做抛砖引玉之用,我来抛几个砖:
Emacs资源导引
2004年 12月23日
百科全书类:
Manpage of Emacs:http://www.linuxforum.net/books/emacs.html
Emacs 中文化指南:http://zhdotemacs.sourceforge.net/emacs/
Emacs WiKi百科:http://zh.wikipedia.org/wiki/EMACS
Emacs User's Guide:http://www.cbi.pku.edu.cn/chinese/documents/csdoc/emacs/
(其实Emacs自带的教程就是很好的起步指南:)
论坛:
LinuxForum的Emacs/Vim论坛:http://www.linuxforum.net/forum/postlist.php?Cat=&Board=vim
水木清华的Emacs论坛:http://www.smth.org/bbsdoc.php?board=Emacs
个人主页:
王垠的个人主页:http://learn.tsinghua.edu.cn/homepage/2001315450/emacs.html
八卦:
Emacs是什么的简称?(又是一个黑客幽默:)
E. M. A. C. S.
Emacs Makes A Computer Slow
Escape Meta Alt Control Shift
Emacs Makers Are Crazy Sickos
Emacs Makes All Computing Simple
Emacs Makefiles Annihilate C-Shells
Emacs Manuals Always Cause Senility
Emacs May Allow Customized Screwups
Emacs Manuals Are Cryptic and Surreal
Eventually Munches All Computer Storage
Eight Megabytes And Constantly Swapping
Elsewhere Maybe All Commands are Simple
Excellent Manuals Are Clearly Suppressed
Emacs May Alienate Clients and Supporters
Except by Middle Aged Computer Scientists
Extended Macros Are Considered Superfluous
Every Mode Accelerates Creation of Software
Each Manual's Audience is Completely Stupefied
Exceptionally Mediocre Algorithm for Computer Scientists
Easily Maintained with the Assistance of Chemical Solutions
Eradication of Memory Accomplished with Complete Simplicity
converse
有关 Emacs 使用技巧的内容请在这个帖子讨论。
Emacs常用命令速查
2004年 12月17日
现在我已经能够熟练使用这些命令了,基本上可以算一个初段的Emacser了,哈哈,总结一下,把这些命令打印出来贴在电脑上,不记得了再查查,从今以后尽量做到写代码和文档都用Emacs来完成.
1)与文件操作有关的命令
C-x C-f 查找文件并且在新缓冲区中打开
C-x C-v 读入另一个文件替换掉用C-x C-f打开的文件
C-x i 把文件插入到光标的当前位置
C-x C-s 保存文件
C-x C-w 把缓冲区内容写入一个文件
C-x C-c 退出Emacs
2)与光标移动操作有关的命令
C-f 光标前移一个字符(右)
C-b 光标后移一个字符(左)
C-p 光标前移一行(上)
C-n 光标后移一行(下)
M-f 前移一个单词
M-b 后移一个单词
C-a 移动到行首
C-e 移动到行尾
M-e 前移一个句子
M-a 后移一个句子
M-} 前移一个段落
M-{ 后移一个段落
C-v 屏幕上卷一屏
M-v 屏幕下卷一屏
C-x ] 前移一页
C-x [ 后移一页
M-< 前移到文件头
M->; 后移到文件尾
C-l 重新绘制屏幕,当前行放在画面中心
M-n 或者 C-u n 重复执行n次后续命令
按下M-x后在辅助输入区中输入"goto-line"跳到指定的行,输入"goto-char"跳到指定的字符
3)与文件删除操作有关的命令
C-d 删除光标位置上的字符
DEL 删除光标前面的字符
M-d 删除光标后面的单词
M-DEL 删除光标前面的单词
C-k 从光标位置删除到行尾
M-k 删除光标后面的句子
C-x DEL 删除光标前面的句子
C-y 恢复被删除的文本或者粘贴最近删除或复制的文本
C-w 删除文件块
按下M-x后在辅助输入区中输入"kill-paragraph"删除光标后面的段落,按下"backward-kill-paragraph"删除光标前面的段落
4)与文本块操作有关的命令
C-@ 标记文本块的开始(或结束)位置
C-x C-x 互换插入点和文本标记的位置
C-w 或 SHIFT-DEL 删除文本块
M-w 复制文本块
M-h 标记段落
C-x C-p 标记页面
C-x h 标记整个缓冲区
5)与位置交换操作有关的命令
C-t 交换两个字符的位置
M-t 交换两个单词的位置
C-x C-t 交换两个文本行的位置
按下M-x后在辅助输入区中输入"transpose-sentences"交换两个句子的位置,按下"transpose-paragraph"交换两个段落的位置
6)与改变字母大小写操作有关的命令
M-c 单词首字母改为大写
M-u 单词的字母全部改为大写
M-l 单词的字母全部改为小写
7)与查找操作相关的命令
C-s 向前递增查找
C-r 向后递增查找
C-s C-w 开始递增查找,把光标位置的单词做查找字符串
C-s C-y 开始递增查找,把光标位置到行尾之间的文本做查找字符串
C-s return searchstring return 向前开始非递增查找操作
C-r return searchstring return 向后开始非递增查找操作
C-s return C-w 向前开始单词查找(不受换行符、空格、标点符号影响)
C-r return C-w 向后开始单词查找(不受换行符、空格、标点符号影响)
8) 与使用编辑缓冲区和窗口有关的命令
C-x b 如果输入一个新的文件名则新建一个文件并且编辑,否则打开该文件
C-x s 保存全部缓冲区
C-x b 删除缓冲区
M-x rename-buffer 重命名当前缓冲区
C-x C-q 把当前编辑缓冲区设置为只读属性
C-x 0 删除当前所在的窗口
C-x 1 当前缓冲区满屏显示
C-x 2 创建上下排列的窗口
C-x 3 创建左右排列的窗口
C-x o 在窗口之间移动
converse
有关 Emacs 使用技巧的内容请在这个帖子讨论。
我的Emacs设置
2004年 12月17日
设置了一下我的Emacs,这些改动可以让我使用起来更加舒服~~
;;禁用启动信息
(setq inhibit-startup-message t)
;;把title设置为“文件名@LC's Emacs"
(setq frame-title-format "%b@LC's Emacs")
;;显示列号
(setq column-number-mode t)
;设置默认的列数是110
(setq default-fill-column 110)
;;设置kill-ring-max(我不知道怎么翻译这个词:)为200,以防不测:)
(setq kill-ring-max 200)
;;设置缺省模式是text,而不是基本模式
(setq default-major-mode 'text-mode)
;;设置tab为4个空格的宽度,而不是原来的2
(setq default-tab-width 4)
(add-hook 'text-mode-hook 'turn-on-auto-fill)
(setq user-full-name "Lichuang")
(global-font-lock-mode t)
;;下面的这个设置可以让光标指到某个括号的时候显示与它匹配的括号
(show-paren-mode t)
(setq show-paren-style 'parentheses)
;;把c语言风格设置为k&r风格
(add-hook 'c-mode-hook
'(lambda ()
(c-set-style "k&r")))
;;set c++ style as stroustrup style
(add-hook 'c++-mode-hook
'(lambda()
(c-set-style "stroustrup")))
;注:我原来还使用了c和c++中的自动换行功能,不过后来用了不习惯就不用了。
benlan
有关 Emacs 使用技巧的内容请在这个帖子讨论。
我们这全是在linux下作开发的,大家平常编辑c文件 简单修改基本是VI,复杂点的 就用sourceInsight+samba到windows下 编辑
以前我们比你们还土,我们用ssh ,用sourceinsight写好,拖过去。这样子唯一的不好就是调试时花费很多的时间。且不能边写边调,写代码时主要的时间是花费在调试上。也不能专注于开发和调试,要不断的拖来拖去,这样的开发效率会很慢。还有就是你必须在win下做linux的开发。如果你完全在linux下做开发就会没法子,还有,去现场调试也没法子。
后来我们都完全用vi开发,熟了就快了,且编辑和调试是同步。我建议你们可以尝试全用vi或emacs开发,可以提高开发的效率。就算你用不惯,我也建议你们完全在linux下开发,用source navigate ,elipce ,kdevelope等工具,可以专注于开发。
总之,我觉得写代码时主要的时间是花费在调试上,而不是在编辑上,就是编辑vi和emacs也比vc ,sourceinsight 快。
arcsiny
有关 Emacs 使用技巧的内容请在这个帖子讨论。
[quote][i]原帖由 "benlan" 发表:[/i]
以前我们比你们还土,我们用ssh ,用sourceinsight写好,拖过去。这样子唯一的不好就是调试?.........[/quote]
呵呵 不知道你们什么方法为什么编辑跟调试不能一起?
一般来说 象embedded system,我们都是有提供telnet+gcc编译的server,在server上用samba到windows下source insight编辑,然后在server编译,一切不是很简单么?
另外 在emacs下除了基本的命令外,不知道有什么可以提高效率的方法?
比如查找一个函数的原型,也要象vi那样去做一个类似tag的东西?
benlan
有关 Emacs 使用技巧的内容请在这个帖子讨论。
一般来说 象embedded system,我们都是有提供telnet+gcc编译的server,在server上用samba到windows下source insight编辑,然后在server编译,一切不是很简单么?
这个我们以前也用过,用ssh比用telnet更好,好象telnet也用的挺多,上次帮个做安全的事业单位做项目,他们也是用telnet的,跌倒。
同步的意思就是指:你必须在win下把东西改好,然后到telnet或ssh上去make ,gcc ,出了点错看是第几行,又到win下来改,改好后又去server上编译,要不断的切换。要做到编编辑和编译时不要窗口换过来换过去。会分散注意力的。以前我们也是那样子过来的,反正你完全在linux用vi和emacs开发肯定比这个模式快的,我们就是这样子实践过来的。
我们还有个gnu组织的人,他要知道的这个开发模式话,要急死的..............:)
精简指令
有关 Emacs 使用技巧的内容请在这个帖子讨论。
我也是用vi 或 emacs,习惯了会觉得很快。
linux下的图形集成开发环境还可以加上一个 c++ builder x
dryice
有关 Emacs 使用技巧的内容请在这个帖子讨论。
[quote][i]原帖由 "arcsiny" 发表:[/i]
另外 在emacs下除了基本的命令外,不知道有什么可以提高效率的方法?
[/quote]
呵呵,今天刚换到CVS Emacs, 贴张图,看看有没有什么吸引力?
[quote][i]原帖由 "arcsiny" 发表:[/i]
比如查找一个函数的原型,也要象vi那样去做一个类似tag的东西?
[/quote]
很不幸,是的。因为elisp毕竟是脚本语言,用来做即时语法分析的话,
太慢了。
converse
有关 Emacs 使用技巧的内容请在这个帖子讨论。
开了5个窗口呢呵呵,我平时开两个都嫌多的,不过这样调程序倒是不错哈。
linux_newbie
有关 Emacs 使用技巧的内容请在这个帖子讨论。
谁能告诉我如何使用gdb设置断点的时侯让emacs高亮源代码那一行?我搞了个快捷件可以设置断点,但是就是不知道如何高亮。
我奇怪这个典型的开发环境有的功能咋emacs就没有lisp。
dryice
有关 Emacs 使用技巧的内容请在这个帖子讨论。
在断点的前面会有个红点(我图里printf那行的前面)
这个才是典型吧?要想改成高亮一行,恐怕你要改改gud.el
另:设断点是 C-x space 不用自己搞 :)
hackevin
有关 Emacs 使用技巧的内容请在这个帖子讨论。
ecb可以让你的emacs看上去像IDE
converse
有关 Emacs 使用技巧的内容请在这个帖子讨论。
强!请教楼上的具体的做法?我初学emacs。
linux_newbie
有关 Emacs 使用技巧的内容请在这个帖子讨论。
[quote]在断点的前面会有个红点(我图里printf那行的前面) 这个才是典型吧[/quote]
你这个printf是[color=red]断点[/color]还是[color=red]当前执行的那行语句[/color]?我记得1年前几乎找遍了所有的emacs站点,只有一篇文章说这个需要研究研究,java的实现了。c的还得等会。
你的emacs版本是什么?需要load特定的lisp吗?
converse
有关 Emacs 使用技巧的内容请在这个帖子讨论。
哈哈,整了一下,装载上ecb了,ecb可以到这里下载:
http://ecb.sourceforge.net/
里面的readme就是最好的安装说明书。
hackevin
有关 Emacs 使用技巧的内容请在这个帖子讨论。
呵呵,ecb还是不错的,最起码,该有的东西都差不多有了
干冰那个调试用的gud-mode?怎么好像不能设置断点啊?
dryice
有关 Emacs 使用技巧的内容请在这个帖子讨论。
呵呵,不好意思,还得再上一张图,上次偷懒了一下,没想被抓住了 :)
这次的图说明一下:
左上角是gdb interactive buffer, 和在命令行上用gdb是一样的,可以看到第三行的hello是main()里的输出。
右上角是当前函数的本地变量,可以看到g的值还没有赋,是一个任意值。
中间是源代码,其中有红色圆点的是设有断点的行,有白色三角的是当前行(下一步将要执行的行)。设断点的话在这个buffer里移动到要设断点的行,然后C-x space。
左下角是函数调用栈。
右下角是断点信息。
再具体的看info吧。
我用的是CVS Emacs。如何得到在http://www.emacswiki.org/cgi-bin/wiki/EmacsFromCVS
我是昨天check out的。有一个问题是那个白色三角的更新时机不对,每次要C-c C-l 才能显示出来。据水木的人说今天的CVS在Windows上面容易crash :)
调试用的是gdb-ui.el,在http://www.nick.uklinux.net/。已经包含在CVS Emacs里面。网站上有一个03年做的tar ball,我在 Gnu Emacs 21.3上试过,不爽,好象只能用一次,然后就和gdb失去了通信,需要重起Emacs,所以我就换 CVS 了 :)
另:水木上有一个Emacs板,感兴趣的话不仿过去看看。
顺祝大家新年快乐 :)
swors
有关 Emacs 使用技巧的内容请在这个帖子讨论。
编辑c++文件时,现在M-;用的是//形式的注释
我想用/**/的
怎么办