我正在使用ECB(Emacs代码浏览器),我的默认布局如下:
;; +------+-------+--------------------------------------+
;; | | |
;; | Directories | |
;; | | |
;; +------+-------+ |
;; | History | Edit |
;; +------+-------+ |
;; | Methods | |
;; | | |
;; +-----------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
默认情况下,方法按照它们在编辑缓冲区中出现的顺序显示,但我正在寻找一种按名称排序的方法.我想使用类似ecb-methods-sort-method
但似乎不存在的东西.有关如何设置的任何提示?
我对在Emacs 24.2.1中运行CEDET和ECB需要做些什么感到困惑.
Emacswiki 有以下文字:
如何启用与Emacs合并的CEDET工具
在Emacs 23.2中,CEDET被合并到主要的Emacs发行版中.CEDET教程中解释的配置代码不再起作用.例如,您不能使用(semantic-load-enable-gaudy-code-helpers)来启用有用的功能.
TODO:请说明加载CEDET提供的最有用的IDE工具所需的代码
我有一个基本配置来处理我的.emacs中的以下内容:
Run Code Online (Sandbox Code Playgroud)(global-ede-mode 1) (require 'semantic/sb) (semantic-mode 1)
使用Emacs 24.3.1和ECB 2.40运行Ubuntu 12.10.除了我几天前运行的apt-get update && upgrade之外,我不知道究竟是什么引起了这种情况.
它开始时,我重新启动计算机,然后运行Emacs并执行MX ecb-activate我会收到以下错误:
ECB 2.40 - 错误:ECB只能与cedet [1.0pre6,1.1.9]一起使用!请安装它并重新启动Emacs!
我尝试了几件事,但还没弄清楚究竟是什么导致了这个问题.几天前我做了一个apt-get update &&升级IIRC,它确实更新了一堆软件包,所以这是可能的.我运行MX cedet-version并获得:
CEDET Version: 2.0
Requested File Loaded
Package Version Version Version
----------------------------------------------------------
cedet: 2.0 nil ok
eieio: 1.4 nil ok
semantic: 2.2 nil ok
srecode: 1.2 nil Not Loaded
ede: 1.2 nil Not Loaded
speedbar: 1.0.4 nil 1.0
cogre: 1.2 nil Not Loaded
cedet-contrib: 1.2 nil Not Loaded
Run Code Online (Sandbox Code Playgroud)
关于这里发生了什么的任何想法?
我在emacs中安装了ECB并自动启动:
(require 'semantic/analyze)
(provide 'semantic-analyze)
(provide 'semantic-ctxt)
(provide 'semanticdb)
(provide 'semanticdb-find)
(provide 'semanticdb-mode)
(provide 'semantic-load)
(semantic-mode 1)
(setq stack-trace-on-error t)
(require 'ecb)
(require 'ecb-autoloads)
(setq ecb-auto-activate 1)
(ecb-winman-winring-enable-support)
Run Code Online (Sandbox Code Playgroud)
ECB每次都会显示"首次激活ECB后的第一步"信息节点.我怎么阻止它这样做?
编辑:
当然蛮力解决了它:
(run-with-idle-timer 0.05 nil '(lambda () (kill-buffer "*info*")))
Run Code Online (Sandbox Code Playgroud)
但我想 - 可能有一个ECB变量知道它是否第一次激活ECB.
编辑:
所以必须举例说:
(setq ecb-source-path (quote (("/home/boris/its/plts" "plts"))))
Run Code Online (Sandbox Code Playgroud)
这告诉ECB该项目是/home/boris/its/plts
,并且应该被称为plts
.
我正在尝试在Emacs 24.3中设置CEDET 2.2来为我提供自动完成功能,使用"对cedet的温和介绍",但它并不完全想按照我想要的方式工作.
首先,我尝试使用CEDET自己的完成,但是那个没有提供"弹出菜单",只有它能找到的第一个完成,并且没有办法循环.然后我安装了自动完成包,并按照页面上的描述进行设置.这也行不通 - 自动完成崩溃说auto-complete error: (void-variable ac-source-semantic)
.ac-source-gtags也是如此.
这是不可能的,因为目前有缺陷的CEDET,还是我错误配置了它?
我从这个问题中了解到,CEDET安装在emacs 24中而无需额外安装,所以我不需要在这里遵循这些说明,也不需要在此处遵循CEDET部分.
我没有使用emacs入门套件,就像这个答案一样.
所以,当我使用elpa安装ecb时,我收到以下错误:
Compiling file /home/mittenchops/.emacs.d/elpa/ecb-20131116.1319/ecb2/jn-file-tree.el at Mon Dec 30 16:13:57 2013
Entering directory `/home/mittenchops/.emacs.d/elpa/ecb-20131116.1319/ecb2/'
jn-file-tree.el:31:1:Error: Cannot open load file: jn-tree-node
Compiling file /home/mittenchops/.emacs.d/elpa/ecb-20131116.1319/ecb2/jn-tree-node.el at Mon Dec 30 16:13:57 2013
jn-tree-node.el:32:1:Error: Cannot open load file: jn-utils
Compiling file /home/mittenchops/.emacs.d/elpa/ecb-20131116.1319/ecb2/jn-tree-view.el at Mon Dec 30 16:13:57 2013
jn-tree-view.el:31:1:Error: Cannot open load file: jn-window
Compiling file /home/mittenchops/.emacs.d/elpa/ecb-20131116.1319/ecb2/jn-utils.el at Mon Dec 30 16:13:57 2013
Compiling file /home/mittenchops/.emacs.d/elpa/ecb-20131116.1319/ecb2/jn-window.el at Mon Dec 30 16:13:57 2013 …
Run Code Online (Sandbox Code Playgroud) 我发现ECB模式非常有用,因为它增强了Speedbar和良好的代码浏览功能.不幸的是,我也非常依赖赢家模式,这与欧洲央行不相容.即便在我这样做之后M-x ecb-deactivate
,所有ECB defuns都会出现加载,并且胜利者命令仍然会引发有关ECB /赢家不兼容的错误.有没有办法删除ECB定义,以便赢家像以前一样工作,没有重启Emacs?
我已经使用Emacs作为PHP IDE已经有一段时间了(使用emacs-starter-kit,ECB和Geben).对于emacs-starter-kit或Emacs 24的每个新版本,ECB都会引入新的错误和窗口问题.它似乎不再维护良好(最新版本是2009年).
想知道是否有一个项目管理器/ IDE emacs插件,这是今天的事实?做文件浏览的东西(如sr-speedbar),方法列表,甚至可能是自动ctags?
我正在使用ECB和Cedet - 语义搜索引擎存储我在其缓存文件中访问的文件的标签.
我也在使用ECB的left-symboldef
布局 - 它显示了光标所在标签的定义.为了做到这一点,语义打开了定义标记的文件.
问题是 - 语义几乎打开了我所有的python脚本 - 因为我已经parser
在所有这些脚本中定义了 - 当我用argparse
... 解析命令行参数时所以我宁愿停止语义缓存我的文件,并且这样做C-c , ,
仅在我的libs上手动操作.
所以我的问题是 - 如何防止语义存储缓存?我仍然可以使用现有的数据库(我将手动收集).
我想在ECB中调试以使用它的功能.我认为ECB没有内置的调试布局.(可能有用的窗口是:堆栈,断点,本地,线程,gdb命令窗口等)
我是否需要在ECB中创建自定义布局,还是有人们使用的其他方式?
使用Emacs 24.3.1附带的CEDET和Melpa中的ECB,我得到以下尝试ecb-activate
:
All requirements for ECB 2.40 fulfilled - Enjoy it! [2 times]
The ECB is now deactivated.
ecb-clean-up-after-activation-failure: ECB 2.40: Errors during the layout setup of ECB.
(error-type: void-variable, error-data: (ecb-examples-bufferinfo-buffer-name))
Run Code Online (Sandbox Code Playgroud)
以下是emacs pacakage经理的信息:
ecb is an installed package.
Status: Installed in `/home/Smith/.emacs.d/elpa/ecb-20131116.1319/'.
Version: 20131116.1319
Summary: a code browser for Emacs
cedet is a built-in package.
Status: Built-in.
Version: 2.0
Summary: Setup CEDET environment
Run Code Online (Sandbox Code Playgroud)
我的问题,如何让这个工作.亚力克斯奥特的欧洲央行分支似乎表明应该这样做.
所以我确实安装了Emacs 24.3.1,从24开始它就有了CEDET.我通过list-packages安装了ECB,一切似乎都有效 - 除了方法窗口刷新.
当我打开一个文件时,显示所有方法,我可以跳转到它们没问题.但问题是,如果不重新启动Emacs,它们永远不会刷新.我已经尝试了几乎所有我能找到的相关变量而且没有任何效果.我正在拼命寻找解决方案,当我扩展项目时,它几乎取消了方法窗口的可用性.
我添加了这些变量,没有Emacs错误,但它仍然不会刷新 - 既不是在保存之后也不是在一些空闲时间之后.
(setq auto-update-methods-after-save 1)
(global-semantic-idle-scheduler-mode 1)
(global-semanticdb-minor-mode 1)
Run Code Online (Sandbox Code Playgroud)
我是新手,所以我可能会错过一些明显的解决方案.谁能帮助我?我可以提供您需要的任何配置文件或信息.
编辑:当然尝试过Cc.r,没有结果.