我編輯與有幾個方法,一類簡單的PHP文件,如果$bar
是這個類的一個實例,I型Vim的:由omnicomplete顯示,那些在ctags的限制方法
$bar->
CTRLXCTRLØ
我得到了很多,除了我的那些類和存在於ctags的列表方法(內建的)一個彈出。如何避免顯示所有這些外部方法,並只保留在我的班級中定義的方法?
我編輯與有幾個方法,一類簡單的PHP文件,如果$bar
是這個類的一個實例,I型Vim的:由omnicomplete顯示,那些在ctags的限制方法
$bar->
CTRLXCTRLØ
我得到了很多,除了我的那些類和存在於ctags的列表方法(內建的)一個彈出。如何避免顯示所有這些外部方法,並只保留在我的班級中定義的方法?
我相信你已經看到了VIM文件(:help ft-c-omni
)本: 「」
當使用CTRL-X CTRL-O的名稱後,沒有任何或「 - >」,則直接從標籤文件完成 。這適用於任何標識符,也可以使用 名稱。如果你想完成一個本地變量名稱,在標籤文件中沒有出現 ,請改用CTRL-P。
當使用CTRL-X CTRL-O之後的東西有「。」或「 - >」Vim將嘗試 來識別變量的類型並找出它具有的成員。 這意味着只有對變量有效的成員纔會被列出。
當成員名稱已經完成時,CTRL-X CTRL-O將添加一個「。」。或 「 - >」複合類型。
如果我正確閱讀,內置功能最多隻允許您使用CTRL-P並匹配局部變量名稱,從而完全繞過TAGS文件。
你真正想要的是一個TAGS文件,特定於你當前正在使用的翻譯單元(header/cpp文件)。如果我試圖解決這個問題,我會執行以下步驟:
CTRL-X CTRL-O
omni-completion。如有必要,還原爲原始標籤。此外,在我看來,您似乎希望能夠直接從VIM調用#1的腳本,因爲您在編碼時會經常更改當前的翻譯單元。
我希望能讓你開始朝正確的方向發展,我很樂意看到/幫助你實現一個=)。
不,我在寫PHP代碼,而不是C++。文檔指出''之後「 - >」只完成給定類的函數和變量名「,但這不是我得到的行爲。 – 2010-06-03 22:23:19
你是對的,我的錯。如果你符合要求(Exuberant ctags 5.5.4/newer)並且已經嘗試了@var技巧;這是一個非常奇怪的問題。這幾乎就好像標籤在找不到更具體的東西(變量的類)時默認爲全局範圍。 – reshen 2010-06-03 22:37:42
同樣的問題 - 沒有解決方案:/ http://stackoverflow.com/questions/1224838/vim-php-omni-completion – nuqqsa 2010-06-03 21:45:54