[英]Using ctags and vim with new file extension mappings
Drupal模塊是帶有.module
文件擴展名的php文件。 為了在這些文件上生成標簽,我使用以下langmap
設置運行ctags:
ctags -R --langmap=php:+.module .
此命令生成tags
文件,屬於幾個標簽.module
文件。 但是,當我使用TlistToggle
打開標簽列表窗口時,未顯示任何標簽。 但是,當打開擴展名為.php
的php文件時,標簽列表窗口會在導航樹中顯示所有標簽。
我是否需要以某種方式為Vim的標簽列表插件指定.module
文件擴展名屬於php語言?
更新:我運行以下在標簽列表常見問題中描述的診斷命令:
ctags -f - --format=2 --excmd=pattern --fields=nks test_module.module
答復不算什么。 但是,當我使用php文件運行此命令時,它將顯示標簽列表:
ctags -f - --format=2 --excmd=pattern --fields=nks test_module.php
Vim和Emacs都將讀取文件中的“編輯提示”:通常嵌入在注釋中的文本,其中包含命令或設置,供編輯者在打開文件時遵循。 您可以使用它來告訴編輯器如何處理文件,而不管文件名如何。
有關同時適用於Emacs和Vim的提示,請在文件末尾放置一個注釋塊:
# Local variables:
# coding: utf-8
# mode: php
# End:
# vim: fileencoding=utf-8 filetype=php :
(您的問題並不需要指定字符編碼,但這顯示了如何在一個注釋塊中組合多個設置。)
您可以使用ctags --verbose
查看默認的語言映射
默認情況下,可能不包含Drupal擴展。 對於PHP,您可能會看到類似的內容: PHP: .php .php3 .phtml
有時長文件可能會產生錯誤,因此我通常會排除那些往往輸出較小的擴展名。 Drupal也經常使用“ .inc”。 該命令應該起作用:
ctags -R --langmap=PHP:+.inc.module --exclude='*.js' --exclude='*.html' --exclude='*.css' *
在〜/ .vimrc中,請確保添加:: :set tags=/path/to/your/tags
然后,您應該可以使用Ctrl + ]跳轉到類/函數定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.