我有一個項目的大代碼庫,我試圖通過emacs標籤使其可搜索。所以我進入主目錄,我嘗試使用這個命令來生成標籤:使用find命令來創建ctags(代碼導航)
find . -name *.[chsS] | xargs etags -
但是,我得到的答覆「查找:不匹配」。
當我只是自己輸入「find」命令時,它會列出所有代碼文件和子目錄中我想標記的更多代碼文件。
我該如何做這項工作?爲了說清楚,我希望能夠使用emacs M-。和M- *來瀏覽一個大型倉庫中的代碼標籤。
非常感謝。
我有一個項目的大代碼庫,我試圖通過emacs標籤使其可搜索。所以我進入主目錄,我嘗試使用這個命令來生成標籤:使用find命令來創建ctags(代碼導航)
find . -name *.[chsS] | xargs etags -
但是,我得到的答覆「查找:不匹配」。
當我只是自己輸入「find」命令時,它會列出所有代碼文件和子目錄中我想標記的更多代碼文件。
我該如何做這項工作?爲了說清楚,我希望能夠使用emacs M-。和M- *來瀏覽一個大型倉庫中的代碼標籤。
非常感謝。
我打電話shannanigans你的要求,這一工作:
find . -name *.[chsS]
在這裏,你的交互shell將展開「* [CHSS。」到文件列表,並第一個將被接受的「名稱」參數。但是find會嘗試將第二個文件解釋爲一個選項,並且它不會有效。
這裏的教訓是引用通配符來查找帶有單引號,雙引號或反斜槓的通配符。
+ 1用於調用shannanigans :) –
這種*可以工作的方式是,當glob不匹配任何內容時,可以配置一些shell以通過glob作爲參數。所以在這個命令運行在不包含.c,.h,.s,.S文件的目錄中的情況下 – stew
嘗試用單引號將名稱括起來,這樣shell就不會將星形解釋爲通配符:find。 -name'*。[chsS]'| xargs etags -' –
或反引號找到。 -name \ *。[chsS] | xargs etags -' – Daimrod
你們真棒謝謝 – JDS