将Emacs用于大型项目

Dan*_* M. 15 emacs search editor project

也许这是一个经常重复的问题,但我找不到与搜索类似的东西.关键是我喜欢将Emacs用于我的个人项目,通常是使用C或python的非常小的应用程序,但我想知道如何将它也用于我的工作,其中我们的项目包含大约10k的源代码文件,所以是veeeery大(实际上我使用源洞察,这是非常好的工具,但仅适用于Windows),问题是:

  • 搜索:在整个项目中搜索字符串最方便的方法是什么?
  • 浏览函数:我的意思是将光标放在函数,定义,var和定义上
  • 重构

此外,如果您有任何经验,并希望分享您的想法,我会认为它非常有趣.

BR

小智 10

导航C源文件的"传统"方式是使用"etags"创建一个名为TAGS的文件,然后使用ALT-.去跨文件的功能.

为了在文件中搜索字符串,我通常使用"grep".您可以创建一个包含您要搜索的所有目录的shell脚本,或者如果您厌倦了每次输入它们.

  • 实际上,etags代表emacs标签,这只是繁荣的ctags可以产生的格式之一.当使用名称etags调用旺盛的ctags时,它会生成emacs格式标记文件.当使用名称ctags调用它时,它会生成ctags格式文件.当然,您也可以传递命令行选项来控制使用哪种格式,而不管用于调用工具的名称. (3认同)

off*_*by1 9

我的项目通常都是git,所以我把它们放在一起快速搜索它们:

;; There's something similar (but fancier) in vc-git.el: vc-git-grep
;; -I means don't search through binary files
(defcustom git-grep-switches "--extended-regexp -I -n --ignore-case"
  "Switches to pass to `git grep'."
  :type 'string)

(defun git-grep (command-args)
  (interactive
   (list (read-shell-command "Run git-grep (like this): "
                             (format "git grep %s -e "
                                     git-grep-switches)
                             'git-grep-history)))
  (let ((grep-use-null-device nil))
    (grep command-args)))
Run Code Online (Sandbox Code Playgroud)


pmr*_*pmr 6

还有Emacs代码浏览器.它使探索项目变得更加简单.有关更多信息,请参见此处此处.