Emacs/CEDET。多个项目和代码完成

2023-11-25

我已经使用 CEDET 1.0 和 ECB 2.40 设置了 emacs 23.1.50.1(很大程度上受到 Alex Otts 设置的启发)http://github.com/alexott/emacs-configs/blob/master/rc/emacs-rc-cedet.el以及他对 Cedet 的温柔介绍(http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html),谢谢亚历克斯)。它工作得很好,但我需要更多地了解在处理多个项目时如何处理代码完成和符号引用。

我创建了一个简单的 ede 项目,如下所示:

(ede-cpp-root-project "test"
                      :file "~/src/sw/anchor"
                      :include-path '("/Common")
                      :system-include-path '("~/include"))

加载此项目时,Semantic 是否仅在项目配置中指定的各个目录中查找补全?

我跟着http://mmmyddd.freeshell.net/blog/Computer/Emacs/usecscopesemanticdbbackend使用 cscope 作为语义数据库的后端。我可以运行semanticdb-enable-cscope-in​​-buffer,而emacs不会抛出任何错误,但我不知道semantic是否使用我的数据库。我是否可以在项目定义中添加对 cscope.out 的引用,以便更好地控制在当前上下文中搜索引用的文件?

有几个奇怪的地方:

当我尝试打开新的源文件时,出现错误“应用:搜索程序:没有这样的文件或目录,全局”并且没有任何反应。如果我尝试再次打开它,一切都会很好。

当我尝试通过指向锚文件来加载项目时,出现此错误:“if:错误的类型参数:class-p,ede-cpp-root”


当您的配置出现错误时,最好的做法是:

M-x toggle-debug-on-error RET

并获取指向问题区域的堆栈跟踪。通常这有助于识别配置问题。

CEDET 将尝试将每个文件与单个项目相关联,并且在该缓冲区中操作的所有命令都将限制在该项目的范围内。对于 CScope 支持,它也将使用 EDE 来识别根目录,这将有助于查找 cscope.out 文件,这与完成和参考工具相关。

当然,例外的是系统包含路径,通常是 /usr/include 或其他路径。这是对默认系统包含路径的增强,该路径是通过 GCC 支持计算的。在您的 C 文件之一中,您可以执行以下操作:

M-x semantic-c-describe-environment RET

这应该显示 Semantic 将尝试使用什么。

要仔细检查 CScope 是否用于代码完成,您可以使用以下命令进行检查:

M-x semanticdb-find-test-translate-path RET

并检查列表末尾是否有一些 CScope 内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Emacs/CEDET。多个项目和代码完成 的相关文章

  • 寻求 emacs 中的自动完成功能

    我正在寻找一个插件来为 emacs 中的 c 开发自动完成弹出窗口 我尝试过的是 Cedet Semantics 和自动完成模式 http cx4a org software auto complete index html 只要我已经有几
  • 如何使用 emacs/elisp 获取当前缓冲区信息的开始/结束?

    我有以下代码运行以范围输入的Figlet 如何修改此代码以检查 b 或 e 是否未指定 使 b 位于当前缓冲区的开头 e 位于当前缓冲区的结尾 defun figlet region optional b e interactive r s
  • 当前缓冲区的议程视图

    编辑 解决方案很简单 但对于任何可以解释为什么我的方法不起作用的人来说都是 加分 原点 我想要一个 org mode custom command 来显示仅从当前缓冲区创建的议程 以下代码片段显示了我想要的视图类型 setq org age
  • Emacs 找不到 Flyspell/ispell

    在我的 Mac Snow Leopard 10 6 8 上 我使用的是 Emacs 24 2 的修改版本此处提供 http vgoulet act ulaval ca en emacs mac 利用 Emacs Speaks Statist
  • 在 Emacs Lisp 中检查字符串是否以后缀结尾

    是否有一个函数可以检查字符串是否以某个子字符串结尾 Python 有endswith http docs python org 2 library stdtypes html highlight endswith str endswith
  • 如何在保存之前对 Emacs 中更改的行执行操作?

    我想添加一个 before save hook 我可以在其中仅对自上次保存以来更改的行执行一些操作 例如 删除尾随空格 检查缩进等 我不想对整个文件执行此操作 并且我知道每个选项都有单独的选项 只是为了删除所有更改行的尾随空格 等等 但我想
  • Emacs 在 haskell 模式下挂起,并调用 下面的 haskell-load-file 调用

    当在 Haskell 文件中时 我使用C c C l运行命令inferior haskell load file其目的是将当前文件加载到 GHCI 解释器中 但 Emacs 会挂起 直到我点击C g 有人知道我怎样才能让它发挥作用吗 all
  • Emacs 邪恶模式:如何创建一个新的文本对象来选择带有任何非空格字符的单词?

    我正在尝试在 Evil 中创建一个新的文本对象 例如 文本对象iw只会选择包含连字符的字符串子集 我希望新的文本对象能够将单词与任何非空格字符相匹配 到目前为止我得到的是 evil define text object evil inner
  • 在 Emacs org-mode 中设置本地文件变量

    在特定的组织模式文件中 我不希望继承标签 我以为放 org use tag inheritance nil因为第一行可以解决问题 但这似乎不起作用 缺少手动执行setq声明 我怎样才能做到这一点 你缺少一个尾随 在标题评论中 尝试这个 or
  • 在 post-command-hook 中,这个用于kill-word的命令已经以某种方式变成了kill-region

    In my post command hook回调 当我这样做时kill word the this command var is kill region 并不是kill word正如预期的那样 我想那是因为kill word uses k
  • ESS 在 Windows 上找不到 Rterm.exe

    我将 R 安装在名为 X alphaAndOmega R R 的目录中 所以Rterm exe 32位版本 位于 X alphaAndOmega R R bin i386 我知道它不是 标准 R 目录 并且 标准 R 目录 例如 R 3 0
  • Emacs 关于 python 模式函数的默认提示

    在 python 模式下 有一个名为 py execute region 的函数 它将突出显示的代码区域发送到 Python 缓冲区进行评估 评估后 光标位于 Python 缓冲区中 但我希望它保留在脚本缓冲区中 以便我可以继续生成更多代码
  • Emacs Evil“重复”(点)行为

    我的中有以下行 emacs define key evil normal state map M j lambda interactive evil next line 5 这使得文件中的导航变得更加容易 例如 与M j我在下面 5 行 所
  • 如何从 Emacs 中运行 Cygwin Bash Shell?

    我在 Windows 上运行 GNU Emacs 因此输入 M x shell 启动 Windows 命令行 DOS shell 但是 我希望能够从 Emacs 中运行 Cygwin Bash Shell 或任何其他非 Windows sh
  • 并排镜像两个打开的缓冲区中的文件位置

    我试图在 emacs 中找到一个包 函数 它可以并排打开两个文件 使其位于同一行位置 镜像正在移动的缓冲区的移动 这意味着 对于并排打开的两个缓冲区 在其中一个缓冲区中移动 向上 向下翻页 移动光标等 将在另一个缓冲区中进行相同的移动 更具
  • 如何在 ubuntu 上的 emacs 中运行 shell 命令,同时避免 bash 作业控制错误?

    我在 ubuntu 中安装了 emacs 使用 sudo apt get install emacs 我遇到的问题是 当我尝试从 emacs 中运行 shell 命令时 例如M ls 输出之前是这样的 bash cannot set ter
  • emacs 的最佳 java 工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Pymacs 助手在 30 秒后未启动

    我见过其他关于此的问题 但没有一个得到真正的回答 而且没有一个是我的问题 我有一个新系统 emacs 23 1 Centos 6 2 我认为 我下载了最新的 pymacs 并安装了它 但是 我得到 error Pymacs helper d
  • “swank-clojure”到底是做什么的,我们有“swank-SOMETHING_ELSE”吗?

    我的肤浅理解是 swank clojure 使 M x slime connect 成为可能 我的意思是 它提供了与 clojure 服务器的连接 例如 lein swank 我的理解正确吗 如果不是 那swank的目的是什么 那么 是否有
  • 如何让 clangd 转向 c++20

    当没有其他信息时 如何让 clangd 回退到 c 20 例如 在第一次构建之前 cmake 可以生成一个 这是在带有最新 LLVM 的 Arch Linux 上 这是通过 Emacs LSP 运行的 但这应该没有什么区别 你可以加 Com

随机推荐

  • 是否有可以检查表情符号的特定范围的 unicode 代码点?

    表情符号是否占据明确定义的 unicode 范围 并且 在 python 2 7 中是否有确定的方法来检查代码点是否是表情符号 我似乎找不到这方面的任何信息 有几个消息来源指出了这个范围 U0001f600 U0001f650 但例如 有代
  • 即使使用 ChangeDetectionStrategy.OnPush 也会调用 Angular ngDoCheck()

    可以说我有一个像这样的组件结构 AppComponent HeaderComponent ContentComponent TodosComponent TodoComponent 如果我设置 HeaderComponent 的change
  • 从 BGL 图中提取邻接矩阵

    使用Boost图库我正在寻找一种方法提取邻接矩阵来自由以下任一表示的基础图boost adjacency list or boost adjacency matrix 我想结合使用这个矩阵boost numeric ublas求解联立线性方
  • 如何在 shell 中以可移植的方式在第一个空行上分割文件(例如使用 sed)?

    我想将包含 HTTP 响应的文件拆分为两个文件 一个仅包含 HTTP 标头 另一个包含消息正文 为此 我需要在第一个空行上将文件分成两个 或者对于仅包含 CR 的第一行的 UNIX 工具 r 字符 使用外壳脚本 如何以可移植的方式执行此操作
  • 错误 android SurfaceFlinger

    我有这个错误消息 SurfaceFlinger 半透明 0 isOpaque 1 isExternalDisplayLayer 0 isExternalBlockLayer0 我使用的是安卓4 1 1 我无法说出我的代码的哪一部分正在生成此
  • 使用 Watir 检查坏链接

    我有一个无序列表的链接 我保存在一边 我想单击每个链接并确保它转到真实页面 而不是 404 500 等 问题是我不知道该怎么做 是否有一些我可以检查的对象可以为我提供 http 状态代码或其他内容 mylinks Browser ul id
  • Android 中具有动态 ActionBar 颜色的半透明 StatusBar

    我正在尝试实现一个半透明的状态栏 以便我的导航视图是BEHIND状态栏 但仍然喜欢动态更改操作栏的颜色 因此 状态栏颜色需要更改为操作栏颜色的较暗版本 如果我将状态栏设置为透明 正如许多消息来源所建议的那样 我的 Primary dark
  • 如何编写多行命令?

    我们如何将命令扩展到下一行 基本上 Linux 的 Windows 替代品是什么 ls l usr 这里我们使用反斜杠将命令扩展到下一行 Windows 的等效项是什么 尝试了键盘上的几乎每个键后 C Users Tim gt cd Meh
  • 在 C# 中递归打印斐波那契字符串

    可以不用 while 循环来完成吗 static void Main string args Console WriteLine Please enter a number int number Convert ToInt32 Consol
  • Ruby on Rails:按月对博客文章进行分组

    嘿伙计们 我使用常见的 CRUD 操作创建了一个简单的博客应用程序 我还在 PostController 中添加了一个名为 archive 的新操作和一个关联的视图 在此视图中 我想带回所有博客文章并按月对它们进行分组 以这种格式显示它们
  • PHP 的 count() 函数对于数组来说是 O(1) 还是 O(n) ?

    Does count 真的计算了 PHP 数组的所有元素 还是这个值缓存在某处并且只是被检索 嗯 我们可以看一下源码 ext standard array c PHP FUNCTION count calls php count recur
  • 如何使用 BorderLayout 将两个组件放入 JPanel 中?

    基本上我想做的是添加两张图片 并排在 JPanel 的中心 并在 JPanel 的右侧添加一个 JLabel 所以我被告知将 JPanel 的布局设置为 BorderLayout 并使用 BorderLayout CENTER 添加图片 使
  • 创建一个自动填充目标页面上字段的链接

    我正在编写一份时事通讯 要求我这样做的人想要其中的链接 一切都很完美 没有问题 现在的问题是 当您单击此链接时 它会进入一个包含字段的页面 并且该人问我是否可以自动填写其中一个字段 该页面是某些服务的订阅页面 当您使用他的电子邮件登录该页面
  • 如何在 iPhone 的 Objective-C 中以编程方式调整图像大小

    我有一个应用程序 可以在很小的空间中显示大图像 这些图像相当大 但我仅以 100x100 像素帧显示它们 由于我使用的图像大小 我的应用程序响应缓慢 为了提高性能 如何使用 Objective C 以编程方式调整图像大小 请找到以下代码 U
  • 枚举的 rawValue 属性无法识别

    我正在使用 Xcode 6 的 Playground 来尝试 Swift 中的枚举 enum Rank String case One One Two Two init rawValue String self rawValue rawVa
  • 创建 Pandas 滚动窗口系列数组

    假设我有以下代码 import numpy as np import pandas as pd x np array 1 0 1 1 1 2 1 3 1 4 s pd Series x index 1 2 3 4 5 这会产生以下结果s 1
  • Python-pandas 将 NA 替换为数据框中一组的中位数或平均值

    假设我们有一个 df A B apple 1 0 apple 2 0 apple NA orange NA orange 7 0 melon 14 0 melon NA melon 15 0 melon 16 0 要替换 NA 我们可以使用
  • 如何防止Gson将整数表示为浮点数

    当我尝试将字符串转换为 json 时 Gson 有一些奇怪的行为 下面的代码将字符串草稿转换为 json 响应 有没有办法阻止 gson 将 0 添加到所有整数值 ArrayList
  • google-api-java-client NetHttpTransport 导致 NoClassDefFoundError

    我刚刚开始研究Android上的google api java client 将接下来的 3 个库添加到项目中 我不使用 Maven google api client 1 4 1 beta jar google api client go
  • Emacs/CEDET。多个项目和代码完成

    我已经使用 CEDET 1 0 和 ECB 2 40 设置了 emacs 23 1 50 1 很大程度上受到 Alex Otts 设置的启发 http github com alexott emacs configs blob master