更新: 此問題已修改,以反映非常有用的意見和答案。我已經接受了答案,但是完整的功能並不適用於最新版本。如何使ctags + scss發揮不錯
.ctags的內容(在〜/)
-R
--exclude=.git
--exclude=log
--verbose=yes
--langdef=scss
--langmap=scss:.scss
--regex-scss=/^[ \t]*([^\t {][^{]{1,100})(\t|)*\{/| \1/d,definition/
--regex-scss=/^[@]mixin ([^ (]+).*/\1/m,mixing/
當我把我的光標目標下,VIM說E426 tag not found: tag_name
考慮以下模式:
footer{
.wrapper{
.general-info{
.footer-links{
a{@include ticker($bg, $white);}
}
}
}
}
在單獨的文件(modules.scss)在目錄中,我有ticker的定義:
@mixin ticker($color, $bg-color) {
color: $color;
background-color: $bg-color;
}
當我把我的光標目標下,仍VIM說E426 tag not found: tag_name
CTAGS不會索引ticker
混入。不過,我可以使用ctags直接從SCSS gem中找到方法(例如變暗)。
以您提供的正則表達式爲例,我給你的作品適合我。如果光標位於單詞ticker中,並按下'ctrl +]',它將跳轉到第一行,其中ticker在modules.scss中定義。此外,與單詞定義的行目前沒有做任何事情,我不認爲該行生成有效標籤,您可以刪除它。工作混合只是標記標籤的一種方式,因此可以將它們分組(如果要配置taglist插件,那麼所有標記爲混合的標籤都將一起列出。) – skeept
您是對的,我必須刷新目錄中的ctags。經驗教訓 – rhodee