emacs完成或IntelliSense与Visual Studio相同

时间:2009-10-29 15:20:31

标签: c++ visual-studio emacs intellisense

Linux上的emacs 22.2.1

我正在使用emacs进行一些C / C ++编程。我想知道emacs是否支持完成(Visual Studio中的IntelliSense)。

例如,在填充结构时,我希望在键入点运算符或箭头运算符时看到成员列表。

同样适用于功能签名,它会给我传递的类型。

6 个答案:

答案 0 :(得分:6)

Meta-/并不完全是智能的,但它会迭代已知的名称。

此项目提供您习惯使用的下拉样式菜单:

http://ecb.sourceforge.net/

答案 1 :(得分:5)

您需要使用最新版本的CEDET包(更好,直接来自CVS)。您可以按照本网站上的文档中的说明进行设置

答案 2 :(得分:4)

我正在使用与emacs的cedet。我尝试在Debian中使用cedet版本,但它有一些错误,所以我卸载了它并从http://sourceforge.net/projects/cedet/develop下载了cvs版本

我在〜/ tmp / emacs-stuff /目录中编译了它,然后将以下行添加到我的〜/ .emacs.d / custom.el文件中:




;;needed if cedet is in a custom location
(load-file "~/tmp/emacs-stuff/cedet/common/cedet.el")

;; Enable EDE (Project Management) features
(global-ede-mode t)

;;to enable code folding
(global-semantic-tag-folding-mode)

;; Enabling Semantic (code parsing, smart completion) features
;; (select only one)
;;(semantic-load-enable-minimum-features)
;;(semantic-load-enable-code-helpers)
(semantic-load-enable-gaudy-code-helpers)
;;(semantic-load-enable-all-exuberent-ctags-support)

(global-semantic-idle-scheduler-mode 1) ;The idle scheduler with automatically reparse buffers in idle time.
(global-semantic-idle-completions-mode 1) ;Display a tooltip with a list of possible completions near the cursor.
(global-semantic-idle-summary-mode 1) ;Display a tag summary of the lexical token under the cursor.

;;to work with my include files and cedet
(semantic-add-system-include "~/include" 'c++-mode)
(semantic-add-system-include "~/include" 'c-mode)


;;To use additional features for names completion, and displaying of information for tags & classes,
;; you also need to load the semantic-ia package. This could be performed with following command:
(require 'semantic-ia)

;;to work with systme include files and gcc
(require 'semantic-gcc)


;;integrate semantic with Imenu
(defun my-semantic-hook ()
  (imenu-add-to-menubar "TAGS"))
(add-hook 'semantic-init-hooks 'my-semantic-hook)

;;load Semanticdb
(require 'semanticdb)
;;(global-semanticdb-minor-mode 1)

;;working with tags
;; gnu global support
(require 'semanticdb-global)
(semanticdb-enable-gnu-global-databases 'c-mode)
(semanticdb-enable-gnu-global-databases 'c++-mode)

;; ctags
(require 'semanticdb-ectag)
(semantic-load-enable-primary-exuberent-ctags-support)

(defun my-semantic-hook ()
  (imenu-add-to-menubar "TAGS"))
(add-hook 'semantic-init-hooks 'my-semantic-hook)


此文件由我的〜/ .emacs文件调用,其中包含以下行: (load-file“〜/ .emacs.d / custom.el”)

现在当您输入变量并按CTRL + SHIFT + ENTER时,选择菜单会提出建议。

此外,如果您设置了semantic-complete-inline-analyzer-idle-displayor-class变量来引用semantic-displayor-tooltip,那么在一些空闲时间(1或2秒)之后也会出现带有建议的工具提示。

有关简短介绍,请参阅http://xtalk.msk.su/~ott/en/writings/emacs-devenv/EmacsCedet.html

有关Cedet文档,请参阅:http://cedet.sourceforge.net/

祝你好运。

答案 3 :(得分:3)

我认为你正在寻找etags。 http://tulrich.com/geekstuff/emacs.html

搜索TAGS。

答案 4 :(得分:0)

如果您想使用股票电子邮件来完成项目和库包含文件,请尝试this answer

答案 5 :(得分:0)

我的.emacs中有这个,这让事情变得更容易。

(需要'c-eldoc) (add-hook'c-mode-hook'c-turn-on-eldoc-mode)

这样,我不必查找函数定义。

我写得不多,但我同意TAGS也是一个非常有用的功能。