我最近看到了這個錯誤得罪格式錯誤,每當我打自動完成宏在Vim中(例如,CTRL-N):如何找到Vim的標籤文件
E431: Format error in tags file "tags"
的標籤文件與旺盛的產生Ctags,大約1MB。我如何找到引發此錯誤的錯誤?
我最近看到了這個錯誤得罪格式錯誤,每當我打自動完成宏在Vim中(例如,CTRL-N):如何找到Vim的標籤文件
E431: Format error in tags file "tags"
的標籤文件與旺盛的產生Ctags,大約1MB。我如何找到引發此錯誤的錯誤?
真正長的函數名稱可能會導致此錯誤。您可以通過在vim中打開標籤文件並查找超過50個字符的方法名稱來查找這些功能。
/^[^\t]{50,}
謝謝。仍然想知道是否有辦法處理它們。另外,我猜你的50值是任意的。都很奇怪。 – mahemoff 2015-06-12 11:00:57
該標籤數據庫是面向行的;在標題(以!_TAG_FILE_...
開始的行)之後,每行對應於標籤。
通過使用二進制搜索,您應該可以快速找到有問題的行:保存標籤文件的副本,刪除一半,測試。如果仍然出現錯誤,請重複(直到您下降到一行)。否則,請拿出另一半並重復。
這是一般的故障排除技術;例如,在Vim插件中查找問題(通過禁用其中的一半)也很有幫助。
我在生成的標籤文件中發現了一些額外的行!_TAG_FILE_FORMAT行。當我刪除這些額外的行時,vim開始工作。
這確實有點奇怪,現在問題是這些線是如何在那裏結束的。如果我們每次創建新的標籤文件時都必須刪除這些內容,那麼這並不是什麼工作流程。你有幸找到原因嗎? – Thomas 2015-05-21 15:29:34
我通過重建標籤解決了這個問題。
首先刪除所有標籤文件,然後重建項目中的標籤。
我認爲原因是我建立標籤文件兩次,第一次爲子目錄建立標籤,然後建立父目錄。
因此,子目錄標記不能包含一些父目錄信息。
我認爲ctags在解析java腳本文件時存在問題。從標記中排除它爲我解決了這個問題。
ctags -R --exclude=*.js .
就我而言,就在'E431'錯誤消息的下面,還有另一條消息指出標籤文件中發生錯誤的位置,例如, '在字節63964633'之前。所以解決這個問題是用Vim打開標籤文件並輸入':go 63964633'來轉到發生錯誤的字節。這恰好是一條1404字節長的行。刪除這條線解決了這個問題。 – 2016-03-08 15:21:06