我用了 redguardtoo/counsel-etags

`M-x counsel-etags-find-tag-at-point`查詢函式定義。我設定其快捷鍵`C-]`, `C-t`是Emacs/Vim中通用的回退至跳轉前的快捷鍵(注意我在Emacs中用Vim模擬器Evil)

`M-x counsel-etags-grep`在專案根目錄下搜尋包含特定詞的檔案。 `C-c C-o`是ivy的`ivy-occur`命令。 `counsel-etags`依賴於`ivy`

掃描程式碼建立索引的命令列工具是ctags。 ctags有兩個實現。 我用`universal-ctags`。

和很多人想象的相反。ctags就是適合真正的大型專案。大多數所謂“大型專案”在我眼中都是中小型專案而已。我以前在柯達做過幾百人年的大型專案。java程式碼都是在IDE普及前寫的。編譯都是用makefile。還要混雜c,perl,bash,tcl程式碼。

另外我現在工具鏈搭建速度飛快,任何平臺下工具鏈配備到能幹活也就是10分鐘的事。比如Windows下也就是cygwin的時候勾一下ctags就完了,連環境變數都不用配。

我的Emacs配置會查詢更高階的命令列工具。找不到就回退到cygwin預設的find/grep/ctags

切換workspace對我也是多餘的。直接開啟任意檔案。相關的Workspace應該自動配置好。我討厭VSCode或其他IDE必須手動切換Workspace的做法。程式設計速度快的時候都這都是干擾。

Emacs是自由的,我追求大道至簡,一切都自動化。只有Emacs可以達到這個境界

在emacs中瀏覽和搜尋程式碼(支援幾乎所有語言)

https://www。zhihu。com/video/1116789957934747648