TLDR:セッションごとに複数回読み込まれる大きなタグファイルがあり、使用できません。問題の原因またはそれを無効にする方法を見つけることができません-主な目的はタグにジャンプすることですが、完了が良いでしょう
私は最近emacs subredditに投稿しましたが、初心者にも優しいため、このグループに参加することをユーザーが勧めています。
私はemacsをC ++ IDEとして使用しており、煩わしいものをゆっくりと修正しています。私は本質的にredguardtooのemacs.dファイルを使用しています。
225MB(1.6Mタグ)のタグファイルがあります。このタグの目的は、必ずしも(を使用してcompany
)完了することではなく、ソースコードをジャンプすることです。慣れていないコードベースを使用していて、マクロまたはクラスの定義を確認する必要があることがよくあります。
入力を開始すると、ランダムなタイミングで、ミニバッファーにメッセージが表示されます
Making tag completion table for [tag file]...0-100%
次に、ポップアップリストボックスにオートコンプリートオプションが表示されます。
このタグファイルは非常に大きく、タグの読み込みが非同期ではないように見えるため、emacsが約1分間フリーズします。これは、セッションごとに複数回発生します(同じファイル、および同じタグファイルを使用する同じディレクトリ内の他のファイル)。
ご質問
- 完了のためにタグテーブルのロードを初期化しているものとそれを無効にする方法を誰かが知っていますか?emacs.dディレクトリで「タグの完成」のためにgrepを実行しましたが、何も見つかりませんでした(IIRCは、
company
またはauto-complete
- 完成はいいですが、タグの場所にジャンプする機能だけで解決します。これを取得する方法はありますか?
- このような問題に取り組むときの考え方は何ですか?次回はさらに自分でトラブルシューティングできるようにしたいと思います。
追加情報
有効なマイナーモード(Ch m)
Enabled minor modes: Abbrev Auto-Composition Auto-Compression
Auto-Encryption Blink-Cursor Column-Number Company Desktop-Save
Display-Time Electric-Indent Electric-Pair Evil Evil-Local
Evil-Matchit Evil-Surround Fic File-Name-Shadow Flyspell-Lazy
Font-Lock Ggtags Global-Auto-Revert Global-Company Global-Eldoc
Global-Evil-Matchit Global-Evil-Surround Global-Font-Lock Global-Linum
Global-Page-Break-Lines Global-Pointback Global-Undo-Tree Helm
Helm-Match-Plugin Helm-Occur-Match-Plugin Line-Number Linum Menu-Bar
Mouse-Wheel Override-Global Pointback Recentf Savehist Shell-Dirtrack
Subword Tooltip Undo-Tree Which-Function Window-Numbering Winner Yas
Yas-Global
package-activated-list
等しい
(ace-jump-mode ag s dash anaconda-mode f dash s dash json-rpc auto-compile packed bbdb bookmark+ browse-kill-ring buffer-move clean-aindent-mode cmake-mode coffee-mode color-theme company cpputils-cmake crontab-mode csharp-mode diminish dired+ dired-details dropdown-list dsvn elnode kv db kv fakir kv dash noflet creole kv noflet s noflet dash web s dash emmet-mode erlang evil-args evil goto-chg undo-tree evil-search-highlight-persist exec-path-from-shell expand-region f dash s fakir kv dash noflet fancy-narrow flymake-coffee flymake-easy flymake-css flymake-easy flymake-haml flymake-easy flymake-jslint flymake-easy flymake-lua flymake-python-pyflakes flymake-easy flymake-ruby flymake-easy flymake-sass flymake-easy flymake-shell flymake-easy flyspell-lazy fringe-helper ggtags git-gutter git-timemachine gitconfig-mode gitignore-mode goto-chg haskell-mode helm-descbinds helm async helm-gtags helm async hl-sexp htmlize ibuffer-vc idomenu iedit json-mode json-snatcher json-reformat json-reformat json-rpc json-snatcher kv legalese less-css-mode lua-mode magit git-rebase-mode git-commit-mode markdown-mode maxframe mic-paren move-text multi-term mwe-log-commands noflet org-fstree packed page-break-lines paredit pointback pomodoro pretty-mode project-local-variables quack rainbow-delimiters regex-tool rinari jump inflections findr ruby-compilation inf-ruby inf-ruby robe inf-ruby ruby-compilation inf-ruby rvm sass-mode haml-mode scratch scss-mode session sr-speedbar string-edit dash switch-window tagedit dash s textile-mode undo-tree unfill w3m web s dash wgrep ws-butler yaml-mode yasnippet
#include "..."
構築時までわからないさまざまな場所に住むことができます。したがって、ggtagsは多くのファイルのタグを生成することができません。現在、ビルドツールを使用make etags
すると、emacs互換のタグを生成できますが、make ggtags
同等のものはありません。それで、私は今のところetagsで立ち往生しています。何か案は?
ggtags
タグを生成することはできませんが、プレーン使ったのgtags
プロジェクトのルートでコマンドラインに?これを試して、ggtagsをもう一度呼び出す必要があります。make ggtags
実際のコマンドはgtags
;であるため、存在すべきではありません。ggtags
それを使用するEmacsのパッケージ名です。別のオプションは、ctagsを使用できることです。タグをggtags
認識することもでき、ctags
高速です。呼び出し時にctagsタグを生成できggtags-create-tags
、ctags
クライアントの使用を要求します。
gtags
ような詳細を知ることができなかった場合、組み込みetags
(Emacsに付属)、またはctags
(上記でリンクした)はそれを実行できるとは思いません。ggtags
プロジェクトルートではなく、現在のディレクトリでタグを作成するためにのみ使用すると思います。gtags
プロジェクトのルートでコマンドを実行するか、ggtags
生成する場所を尋ねられたら、プロジェクトのルートに移動すれば問題ありません。
make etags
すべての.h
ファイルが存在する場所を評価するとetagsを呼び出すため、機能します。