Vim编辑器:last-child和:第一个孩子嵌套的css错误

时间:2016-11-06 13:58:07

标签: css css3 vim sass

我已经开始使用Vim(v8)并为css3配备了适当的语法高亮显示器。我正在使用名为precss的postcss插件在我的代码中提供类似语法的“SASS”。

但是,当我使用带有“&:last-child”或&:first-child的嵌套选择器时,语法会抛出错误。它不会破坏代码或任何东西,但“红色”错误让我分心。检查下面的屏幕截图。

任何人都可以弄清楚如何使这个错误去?我使用了一个名为vim-css3-syntax的插件,它包含scss语法高亮显示。

修改:通过下载https://github.com/cakebaker/scss-syntax.vim然后添加au BufRead,BufNewFile *.css set filetype=scss.css

来解决问题

提前致谢。

1 个答案:

答案 0 :(得分:0)

您在CSS中使用SCSS语法(嵌套块,&等)会使您的CSS无效。

如果您想避免语法错误,您有两条路径:

  • 停止在CSS文件中使用SCSS语法,
  • 确保您的文件被识别为:SCSS。

我认为第一条路是最明智的。毕竟谁在*.rb文件中编写JavaScript或在*.css文件中编写SCSS?但如果你选择第二个,你可以做到:

setf scss

---编辑---

假设我们有这段代码:

body {
    background-color: white;
}

它是有效的CSS 有效的SCSS,因为SCSS是CSS的超集。任何有效的CSS都是自动有效的SCSS。无论文件扩展名为*.css*.scss)和文件类型(cssscss),Vim都会愉快地显示它而不会出现任何错误。

现在,假设我们有这个代码:

body {
    h1 {
        background-color: $brand-1;
    }
}

它是有效的SCSS但不是有效的CSS。如果您使用*.css文件类型在css文件中编写该代码,则会出现错误,因为它不是CSS。如果您使用*.scss文件类型在scss文件中编写该代码,则不会因为它的有效SCSS而导致错误。