2016-11-06 3 views
0

私はVim(v8)を起動し、css3の適切な構文ハイライタを用意しました。私はprecssと呼ばれるpostcssプラグインを使って、自分のコードで "SASS"のような構文を提供しています。Vimエディタ:last-childと:first-childのネストされたCSSエラー

しかし、 "&:last-child"または&:first-childのネストされたセレクタを使用した場合、構文はエラーをスローします。それはコードや何かを壊すことはありませんが、 "赤い"エラーは私のために気を散らしています。以下のスクリーンショットを確認してください。

このエラーをどのようにして解決するかは誰でも分かりますか?私はvim-css3-syntaxと呼ばれるプラグインを使用しています。これにはscss構文の強調表示が含まれています。

編集:それはhttps://github.com/cakebaker/scss-syntax.vimをダウンロードして、事前にau BufRead,BufNewFile *.css set filetype=scss.css

感謝を追加することにより、固定しまいました。

+0

そのバッファのファイルタイプはほぼ確実に 'css'で、'& 'はありません。それを 'sass'または' scss'に変更してください。 – romainl

+0

[OK]を、私はサスまたはscssを使用していません。今私は何をしますか?私はpostcssとprecssというプラグインを使用しています。 – TheEarlyMan

+0

いいえ、あなたが書いているのはSASSかSCSS(ネスト+ '&')なので、それが有効なCSSであるとは期待できないので、CSSエラーが発生します。正しいファイルタイプを使用してください。 – romainl

答えて

0

CSSでSCSS構文(ネストされたブロック、&など)を使用しているため、CSSが無効になります。

あなたは、構文エラーを回避したい場合は、二つの経路があります:SCSS:

  • ストップCSSファイル、
  • にSCSS構文を使用して、あなたのファイルは、それが何であるかのように認識されていることを確認してください。

私は最初のパスが最も賢明であると考えます。結局のところ、*.rbファイルまたは*.cssファイルのSCSSでJavaScriptを書く人はいますか?あなたは、単に行うことができます第二選択した場合でも、:---

setf scss 

---編集を

たちは、このコードがあるとします。

body { 
    background-color: white; 
} 

それは有効なCSS 有効なの両方ですSCSSはCSSのスーパーセットです。有効なCSSは自動的に有効なSCSSです。 Vimはファイル拡張子(*.css,*.scss)とファイルタイプ(css,scss)のいずれであっても、何のエラーもなく喜んで表示します。

今、私たちはこのコードを持っているとします

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

それは有効なSCSSではなく、有効なCSSです。そのコードをcssファイルタイプの*.cssファイルに書き込むと、CSSではないのでエラーが発生します。そのコードをscssファイルタイプの*.scssファイルに書き込むと、有効なSCSSであるためエラーは発生しません。

+0

ここでは、実際には.scss拡張子を含めるためにSASSを使用していません。私はPOSTCSSを使用しており、CSSファイルにSCSS構文を書くことは間違いありません。また、あなたが与える比較は絶対に意味がありません。 SCSSは異なる言語ではありません。それは単なるプリプロセッサです。 coffeescriptがjavascriptと同じように。 jsファイルにcoffeescriptを書くことは許されていますか? – TheEarlyMan

+0

CSSファイルに入れることができるものは標準で定義されており、Vimがその標準に従うCSSファイルの構文を定義するために使用するスクリプトです。 CSSは入れ子を許可しないので、デフォルトの構文スクリプトが入れ子にすることを合理的に期待できません。 **あなたがPostCSSを使用し、標準について気にしないという事実は、VimとCSSのデフォルトの構文スクリプトの両方で全く知られていません**これはあなたがエラーを得る理由です:あなたが '* .css'ファイルは有効なCSSではありません。エラーがないようにするには、あなたが実際に書いているものに合ったファイルタイプ、 'scss'を使います。 – romainl

+0

入手しました。本当にありがとう! – TheEarlyMan

関連する問題