【问题标题】:Emacs C++, opening corresponding header fileEmacs C++,打开对应的头文件
【发布时间】:2010-08-18 07:43:06
【问题描述】:

我是 emacs 新手,我想知道

  • 如果有快捷方式在header/source和对应的source/header文件之间切换

  • 如果有通用emacs ref card这样的reference card

谢谢!

【问题讨论】:

    标签: c++ c emacs


    【解决方案1】:

    ff-find-other-file

    您可以使用以下方式将其绑定到您自己的密钥:

    (global-set-key (kbd "C-x C-o") 'ff-find-other-file)

    但当然,您需要选择一个尚未绑定有用内容的密钥 :)

    【讨论】:

    • 我认为,如果可能的话,您应该更喜欢制作自己的 "C-c <letter>" 形式的键绑定,第二次击键不与 CTRL 字符配对。我记得在第一次启动 emacs 时读到,最近(在 emacs 时代)对专门为用户绑定保留此命名空间而存在的快捷方式进行了大规模重组。 "C-x C-*" 可能被主要模式或 emacs 本身使用。例如,"C-x C-o" 在我的安装中默认由(delete-blank-lines) 使用。
    • 我应该已经阅读了其余的答案:mloskot 下面的答案遵循键绑定最佳实践,emacs 用户通常应该做这种事情,除非他们真的想要一些全球性的东西。
    • 如果你的文件是.cpp.h怎么办?这似乎找不到文件
    • (defvar my-cpp-other-file-alist '(("\\.cpp\\'" (".h")) ("\\.h\\'" (" .cpp")))) (setq-default ff-other-file-alist 'my-cpp-other-file-alist) 执行上述操作,然后按照上面发布的说明进行操作。如果您想扩展到更多对,只需添加到 my-cpp-other-file-alist。
    【解决方案2】:

    查看优秀的 Emacs-fu 文章Quickly switching between header and implementation

    如果博客文章已经消失,这里是解决方案的副本:

    (add-hook 'c-mode-common-hook
      (lambda() 
        (local-set-key  (kbd "C-c o") 'ff-find-other-file)))
    

    现在,我们可以用 C-c o 在 myfile.cc 和 myfile.h 之间快速切换。 注意 c-mode-common-hook 的使用,所以它会起作用 适用于 C 和 C++。

    【讨论】:

    • ff-find-other-file 提示我输入头文件可能所在的位置,这正是我希望该函数为我做的事情。我的头文件通常位于这种位置,与我当前所在的源相关:../../inc/mydir。如,源文件为src/mydir/file.cpp,标题为inc/mydir/file.hpp。您是否希望 ff-find-other-file 在这种情况下也能自动工作?
    【解决方案3】:

    我正在使用来自 CEDET contrib 的 eassist 包,它具有 eassist-switch-h-cpp 功能来执行此任务

    【讨论】:

    • 你知道它是否做了其他选项(见其他答案)没有做的事情吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多