Emacs打開Git倉(cāng)庫(kù)下多個(gè)子工程的根目錄問題解決方案
問題描述
如題所述,這個(gè)問題困擾我很久了,一直沒搜到完整的解決方案。這次終于乘著空閑時(shí)間,研究了projectile.el源碼找到了方案。
問題場(chǎng)景具體描述下:
我自己有一個(gè)私人git倉(cāng)庫(kù),這個(gè)git倉(cāng)庫(kù)有多個(gè)不同的代碼工程,因?yàn)橹挥形乙粋€(gè)人維護(hù)提交,所以不想分出很多git倉(cāng)庫(kù),都是統(tǒng)一提交和更新的。 在這樣的背景下,我在對(duì)應(yīng)子目錄下打開對(duì)應(yīng)代碼工程:就會(huì)出現(xiàn)emacs不會(huì)把當(dāng)前目錄作為根目錄,而是會(huì)把最上層.git的目錄做為主目錄(比如圖片的yumore)。 不管是treemacs還是比如go語言的gopls報(bào)錯(cuò),都是因?yàn)槎ㄎ坏搅?git對(duì)應(yīng)的主目錄(yumore)。
以前通過些小技巧,能繞過去。
解決方案
最終經(jīng)過分析和猜測(cè)定位到了projectile這個(gè)插件。
我通過在子工程加了一個(gè).yu文件做為通用的標(biāo)記當(dāng)前目錄是根目錄具體配置:
lisp復(fù)制代碼(use-package projectile
:ensure t
:bind (("C-c p" . projectile-command-map))
:config
(add-to-list 'projectile-project-root-files-bottom-up ".yu")
)
(projectile-project-info)
關(guān)鍵代碼1: (add-to-list '
projectile-project-root-files-bottom-up ".yu")
關(guān)鍵代碼2: (projectile-project-info)
效果見圖: