LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1222|回复: 3

放一个能在源代码和头文件中快速切换的emacs扩展

[复制链接]
发表于 2005-12-30 12:54:24 | 显示全部楼层 |阅读模式
一直在用emacs写c++程序,经常要在cpp文件和h文件中切换,非常繁琐,好像有个cedet中的功能可以切换,但是碰到hpp什么的又不行了,真是麻烦。

        现自己动手学了半天lisp,终于摸索着写出了个扩展,可以自定义任何相关联的后缀名进行切换,比如 cpp = h, cxx = h, cpp = hpp, xml = xsl, xml = xsd 等,而且在cpp找不到h的时候,会自己去找hpp,都可以手动配置的。

        使用简述:
              下载附件文件,解压出switch-header.el源码,放到emacs安装目录下site-lisp中。

              编辑~/.emacs文件,加入
                  (require switch-header)

              定义自己的快捷键,我的是 Ctrl+x o,用户可以根据需要自己修改。
                  (global-set-key (kbd "C-x o") 'switch-header)

              (可选)在~/.emacs中加入或直接在 switch-header.el 中加入
              自己需要关联的文件后缀。下面是关联c 和 h,可以有任意多个。
                  (add-to-list 'header-switch-list '("c" "h"))
            
              (可选)编译原文件加快加载速度:打开 switch-header.el所在目录,
              选中 switch-header.el 文件,按 m 键,然后按 sift-b 进行编译。

              现在打开一个aaa.cpp文件,按定义的快捷键,是不是已经切换到
              aaa.h 了? 再按一下,就会切换回来,enjoy!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2005-12-30 13:13:19 | 显示全部楼层
(require 'switch-header)

另:放到 ~/.emacs.d 中就可以了,还可以把 C-x o 设定到 cc-mode 等特定的 mode 中,而不是全局中,因为这个命令对文本文件意义不大。
回复 支持 反对

使用道具 举报

发表于 2005-12-30 13:32:46 | 显示全部楼层
这样是不是好点儿:
  1. (defgroup header-switch nil
  2.   "Header switch group"
  3.   :group 'tools)

  4. (defcustom header-switch-list
  5.   '(("cxx" "h") ("c" "h"))
  6.   "Header switch list"
  7.   :type '(alist :key-type string :value-type (group string))
  8.   :group 'header-switch)
复制代码


重新装载这个文件后,执行 M-x customize-variable RET header-switch-list RET。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-30 13:57:43 | 显示全部楼层
呵呵,很有用的defcustom,我知道有这么回事,但不知道怎么用,就学了一点点时间,将来肯定会熟悉起来的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表