簡體   English   中英

Vim,C ++,YCM和Syntastic包含路徑問題

[英]Vim, C++, YCM, and Syntastic include path problems

我覺得我有一個很棒的使用Vim進行C ++編程的設置,但我找不到告訴Vim,YCM和Syntastic搜索標題的方法。 每當我想在Makefile中存在此信息時想要處理項目時,必須手動設置Vim,YCM和Syntastic的包含路徑變量會非常煩人。 是否有用於設置全局包含路徑的自動化解決方案?

編輯:如果我設置路徑,它甚至找不到標題“:set path =”。,/ usr / include,include,.. / include,/ home / steven / ovgl / include ,,“”

您的標題應出現在標記文件中(如果您不知道,請參閱:h標記 )。

然后YouCompleteMe能夠從標記文件中讀取有關標題的信息,如插件常見問題中所述

YCM不會從我的標簽文件中讀取標識符

首先,在你的vimrc中輸入let g:ycm_collect_identifiers_from_tags_files = 1

確保使用Exuberant Ctags生成標記文件,因為唯一支持的標記格式是Exuberant Ctags格式。 不支持“普通”ctags格式。 ctags --version的輸出應該列出“Exuberant Ctags”。

需要使用--fields=+l (這是一個小寫的L,而不是一個)選項來調用Ctags,因為YCM需要language:<lang>標簽輸出中的language:<lang>字段。

注意:Mac OS X默認安裝了“普通”ctags。 brew install ctags將為您提供Exuberant Ctags版本。

還要確保正確設置了Vim標簽選項。 有關詳細信息,請參閱:h 'tags' 如果要查看YCM將為給定緩沖區讀取哪些標記文件,請運行:echo tagfiles() ,並激活相關緩沖區。 請注意,該函數僅列出已存在的標記文件。

你要尋找YCM-Generator 它是一個通過運行make並查找所有使用的標志來生成ycm_extra_conf.py的腳本。 您為項目運行一次,並僅在make文件更改時重新運行。

我遇到過類似的問題。 我需要這個用於使用llvm進行開發。 我按照以下步驟解決了這個問題:

  1. Ctags -R --fields=+l *在您的項目/代碼庫中。
  2. 在您的用戶.vimrc文件中,添加let g:ycm_collect_identifiers_from_tags_files = 1
  3. cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py ~/
  4. 在.vimrc中添加另一行let g:ycm_global_ycm_extra_conf = '/home/<user>/ycm_extra_conf.py'
  5. 重置終端或點擊bash

注意:您應該在包含標記的目錄中啟動vim。 或者您可能需要顯式指定標記所在的目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM