簡體   English   中英

在新的文件擴展名映射中使用ctags和vim

[英]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.

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