免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: flw
打印 上一主题 下一主题

有关 Emacs 使用技巧的内容请在这个帖子讨论。 [复制链接]

论坛徽章:
0
611 [报告]
发表于 2007-11-05 09:26 |只看该作者
原帖由 weixiaoke 于 2007-11-5 08:30 发表
切换到C模式应怎样按啊?
请说详细一点,谢谢!


默认情况下,你打开一个*.c文件,自动就是c模式。手工切换到c模式是
  1. M-x c-mode
复制代码

论坛徽章:
0
612 [报告]
发表于 2007-11-19 10:57 |只看该作者

如何删除空行

我用一个代码产生器创建的源码文件中,每行代码后面都有一个空行。我现在要去掉这些空行。

我想用正则表达式的字符串匹配来做,但是却不知道用什么来替换:

M-x replace-regex  
replace  ^[ \t]*$ with ?????

直接留空(回车)是没有用的。

论坛徽章:
0
613 [报告]
发表于 2007-11-19 18:49 |只看该作者
原帖由 buxoman 于 2007-11-19 10:57 发表
我用一个代码产生器创建的源码文件中,每行代码后面都有一个空行。我现在要去掉这些空行。

我想用正则表达式的字符串匹配来做,但是却不知道用什么来替换:

M-x replace-regex  
replace  ^[ \t]*$ with ...


应该把跟在空行后的换行也替换掉。在minibuffer中输入换行的办法是先按 C-q 再按 C-j:


  1. M-x replace-regex <ret>^[ \t]*C-qC-j<ret><ret>
复制代码

论坛徽章:
0
614 [报告]
发表于 2007-11-20 21:28 |只看该作者
我用emacs。
不知大家注意到没有,遵循unix kiss原则的R.S写了个emacs这样大而全的东西,有点怪啊

论坛徽章:
0
615 [报告]
发表于 2007-11-21 10:34 |只看该作者
原帖由 flyeon 于 2007-11-20 21:28 发表
我用emacs。
不知大家注意到没有,遵循unix kiss原则的R.S写了个emacs这样大而全的东西,有点怪啊


这个不怪。the art of unix programming 里提到过这个问题。
表面上看,emacs大而全。但实际上emacs只是一个粘结(glue)层。把各种各样的应用连接到一起。emacs本身的大小也不大(我机器上是4.2M)。大的是emacs的各种各样的库(mode)。

emacs 和 emacs库(mode)之间的关系与 jvm 和 java应用程序之间关系类似。又好比shell与各种unix工具的关系。

在 unix 上,你可以用shell、pipe把各种unix工具组合起来完成复杂任务。你能说那是shell实现了所有的功能么?不是的,shell只是负责粘合。同理,emacs 其实是一个平台;在这个平台上,各种elisp(及非elisp)程序可以方便的组合到一起实现更复杂的任务。

这恰恰是unix思想的一个体现:每个程序只完成一项,并且把它做好。复杂的任务由多个(功能相对简单的)程序协作完成。

论坛徽章:
0
616 [报告]
发表于 2007-11-21 12:59 |只看该作者
哦,学习了                   .

论坛徽章:
0
617 [报告]
发表于 2007-11-22 11:09 |只看该作者
原帖由 Ecore 于 2007-1-3 02:29 发表
通过SecureCRT 5.2,ssh连接到solaris10上,运行emacs后,发现emacs 20.7,默认的BackSpace键,不能执行删除命令。只能使用del键来删除,请问,如何配置.emacs才能使BackSpace键有删除的功能?


很老的问题了。因为没有secureCRT,所以当时也不能给出具体解决方案。今天有个朋友也用secureCRT,遇到同样问题。

原因是secureCRT默认把backspace键匹配成 C-h,即你按backspace键secureCRT就给远端发送一个控制字符C-h (\010)。而在emacs中C-h是调用help的快捷键。

改正办法很简单:在secureCRT的设置中把backspace匹配成DEL(\177)即可。这里的DEL是向前删的DEL。

[ 本帖最后由 lgfang 于 2007-11-22 12:59 编辑 ]

论坛徽章:
0
618 [报告]
发表于 2007-11-23 16:49 |只看该作者
学会自己寻找(关于Emacs的问题的)答案

Created: Fang lungang 11/23/2007 Modified: Fang lungang 11/23/2007 16:48>

向大家介绍一个简单技巧,掌握以后,再遇到问题时,很多时候自己就能搞定,不用上线问人了。
首先,一定要学会用emacs的帮助系统的下面几个命令:

C-h i
C-h f
C-h v
C-h k

它们很简单但很实用。
其次要充分利用 Emacs 的命令自动补齐功能。
然后再大胆猜测就行了
举个例子:

今天有个朋友知道emacs中怎么设GDB断点,但不知道怎么去断点。我也不知道,但是很轻易地就查到了。我是怎么查的呢?

1, 选择help命令。肯定有一个函数对应于去断点的命令,所以可以用 C-h f 来查看这个命令。

2, 缩小帮助范围。因为Emacs和GDB的接口(mode)名称是GUD,所以按照emacs 命名传统这个命令很有可能以gud打头。

3, 利用tab补齐找到这个命令。输入 C-h f gud <tab><tab>,出来很长的补齐列表。

4, 我可懒得在其中一个个地查找。我知道的表示删除的英文单词有 remove, delete, erase。决定先尝试 remove, 于是输入 re 再 <tab>。

5, 这时提示列表就只剩四个了: gud-read-address gud-refresh gud-remove gud-reset 。一眼锁定gud-remove,估计就是它了。继续在 minibuffer 中输入 "remove",查看gud-remove 的帮助。果然就是它。
另外一种办法:利用菜单栏 (CLI下也可以)

设置、删除断点这样常用的功能很可能在GUD菜单栏里有。只要菜单里有,一般都会标明相应的快捷键。所以另外一种办法就是直接到菜单栏里找。

这一招对命令行模式启动(emacs -nw)的,同样有效。在命令行下也可以用快捷键调用菜单(menu)的: M-` (其中 ` 是<ESC>下面的那个键)。然后根据提示一步步输入字母选择菜单即可。

论坛徽章:
0
619 [报告]
发表于 2007-11-26 16:09 |只看该作者
以前对multi tab没什么需求,现在突然想用一下,不知道有没有这个啊

论坛徽章:
0
620 [报告]
发表于 2007-11-26 19:10 |只看该作者
原帖由 flyeon 于 2007-11-26 16:09 发表
以前对multi tab没什么需求,现在突然想用一下,不知道有没有这个啊


是不是想要 tabbar?

  1. ;; tabbar
  2. (require 'tabbar)
  3. (tabbar-mode)
复制代码


建议没事看看我的配置文件。自我感觉用起来算是比较称心应手了
http://blog.chinaunix.net/u/23408/showart.php?id=182369
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP