免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
711 [报告]
发表于 2008-08-13 10:34 |只看该作者
原帖由 jjbin 于 2008-8-12 12:46 发表
在emacs环境下可以直接进入远程的cvs吗?要使用什么插件??



emacs 支持多种版本控制软件,不用额外的插件,官方发布中自带的。 M-X 后, cvs- 起头的有好些呢。

[ 本帖最后由 retuor 于 2008-8-13 10:36 编辑 ]

论坛徽章:
0
712 [报告]
发表于 2008-08-13 10:36 |只看该作者
原帖由 jjbin 于 2008-8-12 20:26 发表
emacs在windows下似乎与vc++冲突,我装了vb以后就无法在command下正常打开emacs了。


有什么错误信息呢?

论坛徽章:
0
713 [报告]
发表于 2008-08-17 01:42 |只看该作者

决定放弃Emacs

数次努力学习Emacs,对它的Buffer管理,目录管理,shell模式比较感兴趣,但是作为一个编辑器,应该把编辑功能做好,Emacs的编辑功能和Vi相比,真是相差太远了。
Emacs做得太强大,功能太多,而各个功能却比不上专业的工具。
目录、文件管理比不上shell命令
shell模式更是比不上真正的shell环境
编辑又比不上VI
版本控制,调试,SQL等都有更强大的专业工具
UNIX是各种工具组合而成的强大系统,而Emacs却想把自己当作一个集所有功能于一体的强大工具,把自己当成了“操作系统”,这与UNIX思想背道而弛。
最主要的是做的不好用,如果在易操作上多做思考,大家才会真的喜欢它

论坛徽章:
0
714 [报告]
发表于 2008-08-17 15:57 |只看该作者
我希望:

把一个函数绑定在功能键 F2 上,当一按 F2 时,自动切换到 buffer  *shell* 里,并输入 'x'; 然后输入回车; 最后切换回来。

但不知道如何输入 '回车',试了以下的方法


  1. (insert "x\r")
复制代码


  1. (insert "x\n")
复制代码


  1. (insert "x")
  2. (newline)
复制代码


但都不成功。上面的代码都把 *shell* buffer 当普通文本进行编辑了,没有跟  *shell* 里的程序进行交互。F2 后,我自行切换到 *shell* 后,可以用编辑键把刚才输入的 'x' 都删除掉。

论坛徽章:
0
715 [报告]
发表于 2008-08-17 16:04 |只看该作者
不知道说清楚了没有。

换个问法。如果在 *shell* 中输入 "ls",然后回车,shell 会执行 ls 命令。如何用一个 elisp 函数精确模拟这个行为呢?

论坛徽章:
0
716 [报告]
发表于 2008-08-17 22:18 |只看该作者
原帖由 enigma1983 于 2008-8-17 01:42 发表
数次努力学习Emacs,对它的Buffer管理,目录管理,shell模式比较感兴趣,但是作为一个编辑器,应该把编辑功能做好,Emacs的编辑功能和Vi相比,真是相差太远了。
Emacs做得太强大,功能太多,而各个功能却比不上 ...


说明你根本不懂Emacs,说的全部都是错的

数次努力学习Emacs


说明你不适合用emacs,好好用好vim吧。我周围真正能喜欢上emacs的人都是一开始就喜欢它的。那些试图通过时间来习惯、喜欢emacs的往往都失败了(有一个小伙还在坚持)。

[ 本帖最后由 lgfang 于 2008-8-17 22:22 编辑 ]

论坛徽章:
0
717 [报告]
发表于 2008-08-17 22:24 |只看该作者
原帖由 retuor 于 2008-8-17 15:57 发表
我希望:

把一个函数绑定在功能键 F2 上,当一按 F2 时,自动切换到 buffer  *shell* 里,并输入 'x'; 然后输入回车; 最后切换回来。

但不知道如何输入 '回车',试了以下的方法


(insert "x\r")


...

用一个键盘宏不就行了么?

论坛徽章:
0
718 [报告]
发表于 2008-08-18 00:17 |只看该作者
原帖由 lgfang 于 2008-8-17 22:24 发表

用一个键盘宏不就行了么?


这个宏不错,谢谢。

再请教一下:

1、这个宏如何保存呢?
    如果我重装机器,可以把函数的代码备份起来。宏的代码不知道在哪里?

2、可以用函数实现吗?

论坛徽章:
0
719 [报告]
发表于 2008-08-18 01:25 |只看该作者
基本搞定了,

1、如何保存 keyboard macro

    用 insert-kbd-macro  来保存。我定义的宏名字为 kbd-enter,保存结果为:


  1. (fset 'kbd-enter "\C-m")
复制代码


    从展开的结果看,可以直接用 fset 来定义键盘宏。

2、如何在函数中调用一个宏

在我的函数里要调用键盘宏 kbd-enter,方法为


  1. (execute-kbd-macro (symbol-function 'kbd-enter))
复制代码


宏不是函数,下面的方法不顶用


  1. (kbd-enter)
  2. (funcall 'kbd-enter)
复制代码


最后还剩下一个问题,是否能不用宏,直接给它注入一个 C-m 呢?

[ 本帖最后由 retuor 于 2008-8-18 01:34 编辑 ]

论坛徽章:
0
720 [报告]
发表于 2008-08-18 11:29 |只看该作者
我的意思把下面整个过程做成一个键盘宏
如果在 *shell* 中输入 "ls",然后回车,shell 会执行 ls 命令。如何用一个 elisp 函数精确模拟这个行为呢?


你看看这个manual 吧:

(info "(emacs)Save Keyboard Macro")

[ 本帖最后由 lgfang 于 2008-8-18 11:40 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP