我想知道人们在使用大型代码库(大约50000 cpp | .h | .cs文件)时如何在emacs中使用标签.我的一些同事使用索引工具(名称转义我),它在几秒钟内返回代码库中的所有结果.我似乎无法在emacs和标签上获得任何接近的性能,但它基本上是相同的!
我试过的一些方法:
任何建议\您的工作流程的例子表示赞赏.
这是我使用的脚本:
#!/usr/bin/bash
echo "Creating list of files to build tags..."
find `pwd` -name '*.c' -o -name '*.h' > cscope_files
echo "Building cscope and ctags databases..."
cscope -bqki cscope_files
ctags -eL cscope_files
Run Code Online (Sandbox Code Playgroud)
> cat cscope_files | wc -l
10700
Run Code Online (Sandbox Code Playgroud)
对于与您的项目相当的10700个文件,标签之间的跳转是即时的.正如您所知,这构建了cscope和etags数据库.我在树的顶部开始这个脚本.如果这有任何帮助,这些是我的.emacs.el文件中的键绑定.
(defun hide-cscope-buffer ()
"Turn off the display of cscope buffer"
(interactive)
(if (not cscope-display-cscope-buffer)
(progn
(set-variable 'cscope-display-cscope-buffer t)
(message "Turning ON display of cscope results buffer."))
(set-variable 'cscope-display-cscope-buffer nil)
(message "Toggling OFF display of cscope results buffer.")))
(global-set-key [f9] 'cscope-find-this-symbol)
(global-set-key [f10] 'cscope-find-global-definition-no-prompting)
(global-set-key [f11] 'cscope-find-functions-calling-this-function)
(global-set-key [f12] 'cscope-find-this-file)
(global-set-key (kbd "C-t") 'cscope-pop-mark)
(global-set-key (kbd "C-n") 'cscope-next-symbol)
(global-set-key (kbd "C-p") 'cscope-prev-symbol)
(global-set-key (kbd "C-b") 'hide-cscope-buffer)
(global-set-key [S-f7] 'cscope-next-file)
(global-set-key [S-f8] 'cscope-prev-file)
(global-set-key [S-f9] 'cscope-find-this-text-string)
(global-set-key [S-f10] 'cscope-find-global-definition)
(global-set-key [S-f11] 'cscope-find-egrep-pattern)
(global-set-key [S-f12] 'cscope-find-files-including-file)
Run Code Online (Sandbox Code Playgroud)
我不是常规的emacs用户.当我尝试切换到emacs时,我使用了这些,但后来又恢复到vim,在那里我找到了在emacs中做的所有事情.
更新:对于目录层次结构多个标签的文件,看看在多标签文件本节文章.
| 归档时间: |
|
| 查看次数: |
7932 次 |
| 最近记录: |