加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

vim – 如何配置ctags以使用CSS,SCSS,HTML?

发布时间:2020-12-15 21:44:32 所属栏目:安全 来源:网络整理
导读:我已经在stackoverflow上阅读了很多博客文章和答案,但似乎我做错了,因为我还有E388:找不到定义错误.我做了什么: 从这里下载ctags http://ctags.sourceforge.net/ 通过以下方式安装:./ configure make install 在我的.vimrc文件中设置tags = tags; $HOME
我已经在stackoverflow上阅读了很多博客文章和答案,但似乎我做错了,因为我还有E388:找不到定义错误.我做了什么:

>从这里下载ctags http://ctags.sourceforge.net/
>通过以下方式安装:./ configure&& make install
>在我的.vimrc文件中设置tags = tags; $HOME
>在?/ .ctags中添加一些行(见下文)
>做ctags -R.在项目根目录中并获得一些警告(见下文)
>检查类别:标签.< C-D>这给了我一个很大的课程列表(很高兴)

警告:

ctags: Warning: regcomp ([A-Za-z0-9._$]+)[ t]*[:=][ t]*{: Unmatched {
ctags: Warning: regcomp ([A-Za-z0-9._$()]+)[ t]*[:=][ t]*function[ t]*(: Unmatched ( or (
ctags: Warning: regcomp ([A-Za-z0-9._$]+)[ t]*[:=][ t]*[: Invalid regular expression
ctags: Warning: cannot open source file "static/img/touch/packages" : No such file or directory

我的?/ .ctags文件如下所示:

--exclude=*.min.js
--exclude=*.min.css
--exclude=*.map
--exclude=.backup
--exclude=.sass-cache
--exclude=vendors
--exclude=.git

--langdef=css
--langmap=css:.css
--langmap=css:+.sass
--langmap=css:+.styl
--langmap=css:+.less
--regex-css=/^[ t]*.([A-Za-z0-9_-]+)/.1/c,class,classes/
--regex-css=/^[ t]*#([A-Za-z0-9_-]+)/#1/i,id,ids/
--regex-css=/^[ t]*(([A-Za-z0-9_-]+[ tn,]+)+){/1/t,tag,tags/
--regex-css=/^[ t]*@medias+([A-Za-z0-9_-]+)/1/m,media,medias/

--langdef=scss
--langmap=scss:.scss
--regex-scss=/^[ t]*@mixin ([A-Za-z0-9_-]+)/1/m,mixin,mixins/
--regex-scss=/^[ t]*$([A-Za-z0-9_-]+)/1/v,variable,variables/
--regex-scss=/^([A-Za-z0-9_-]*)*(.[A-Za-z0-9_-]+) *[,{]/2/c,classes/
--regex-scss=/^[ t]+(.[A-Za-z0-9_-]+) *[,{]/1/c,classes/
--regex-scss=/^(.*)*#([A-Za-z0-9_-]+) *[,{]/2/i,ids/
--regex-scss=/^[ t]*#([A-Za-z0-9_-]+)/1/i,ids/
--regex-scss=/(^([A-Za-z0-9_-])*([A-Za-z0-9_-]+)) *[,|{]/1/t,tags/
--regex-scss=/(^([^//])*)[ t]+([A-Za-z0-9_-]+)) *[,|{]/3/t,tags/
--regex-scss=/(^(.*,*)([A-Za-z0-9_-]+)) *[,tags/
--regex-scss=/(^[ t]+([A-Za-z0-9_-]+)) *[,tags/
--regex-scss=/^[ t]*@medias+([A-Za-z0-9_-]+)/1/d,media/

--regex-html=/id="([A-Za-z0-9_-]+)"/1/i,ids/
--regex-html=/class="([A-Za-z0-9_-]+)"/1/c,classes/

--langdef=js
--langmap=js:.js
--regex-js=/([A-Za-z0-9._$]+)[ t]*[:=][ t]*{/1/,object/
--regex-js=/([A-Za-z0-9._$()]+)[ t]*[:=][ t]*function[ t]*(/1/,function/
--regex-js=/function[ t]+([A-Za-z0-9._$]+)[ t]*(([^)]))/1/,function/
--regex-js=/([A-Za-z0-9._$]+)[ t]*[:=][ t]*[/1/,array/
--regex-js=/([^= ]+)[ t]*=[ t]*[^"]'[^']*/1/,string/
--regex-js=/([^= ]+)[ t]*=[ t]*[^']"[^"]*/1/,string/

项目结构:

enter image description here

无论在哪里(static / index.html,static / css / main.scss或static / css / components / set.scss)我尝试使用] ^ D“跳转到定义”我总是得到E388:无法找到定义.怎么了?

UPDATE

c为C – ]>在_col-2名称的开头按下:

>如果< div class =“_ col-2”> ..给出E426:找不到标签:_col.看起来vim没有正确检测classname.
>如果是.class {@extend ._col-2;给出相同的.

作为建议@romainl,在将iskeyword = – in .vimrc中的set添加为dash是关键字的一部分后,按下< div class =“_ col-2”> ..会在行的开头抛出我.

解决方法

关于E426:找不到标签:txal-center …

你的.ctags中的这些行将索引.foo-bar – 带有前导的dot-in * .scss文件:

--regex-scss=/^([A-Za-z0-9_-]*)*(.[A-Za-z0-9_-]+) *[,classes/

当您按< C - ]>在HTML文档中的类名称上,Vim会查找确切的类名,比如foo-bar,但它找不到它,因为你的标签文件中只有.foo-bar.那是因为Vim默认进行“全字”搜索.

这个特定问题的解决方案是将标记留在标记之外:

--regex-scss=/^([A-Za-z0-9_-]*)*.([A-Za-z0-9_-]+) *[,classes/
--regex-scss=/^[ t]+.([A-Za-z0-9_-]+) *[,classes/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读