Vim 7.4で.vimrcの強調表示コマンドをすぐに有効にするにはどうすればよいですか?


9

ファイルにいくつかのhighlightコマンドがあり.vimrcます。Vim 7.3では、これらはVimの起動直後に有効になりました。Vim 7.4にアップデートした後、これはもう当てはまりません。Vimは最初はデフォルトの強調表示を使用します。を.vimrc実行して2回目の読み込みを行うとsource ~/.vimrc、強調表示が思い通りに機能します。

次の手順を使用してこの問題を再現できるはずです。

  1. .vimrcファイルのコピーを作成します。

  2. ~/.vimrc行だけを含むファイルに置き換えますhighlight Type ctermfg=28 cterm=bold

  3. 実行vim dummy.c(例えばGNOME端末用)256カラー端末に。

  4. intバッファに入力します。int通常のフォントで表示され、私が欲しいものではありません色のライトグリーン、でなければなりません。

  5. と入力し:source ~/.vimrcます。これで、intは太字のフォントで表示され、濃い緑色になります。

vimの色を制御/構成する方法」の記事によると、highlightコマンドをに配置するだけで問題ありません.vimrc。記事はコマンドのsyntax enable後に置くべきだと言っていますhighlightが、これは何の違いもありませんでした。

私の最初の修正は、それぞれ前に付加することだったhighlightにコマンドを.vimrc持ちますautocmd VimEnter *。これは一部のファイルタイプでは機能しましたが、他のファイルタイプでは機能しませんでした(Cファイルは一例です)。

この動作の理由は何ですか?highlightVimの起動時にコマンドを実行して、Vimセッション全体のすべてのバッファーでコマンドを有効にする方法



はい、set compatibleの最初に追加すると.vimrc、構文の強調表示が期待どおりに機能します。つまり、これは実際にこのバグのようです。
Wolfgang Jeltsch 2016年

highlightコマンドの前にを付けましたautocmd ColorScheme *。これは、バグレポートで回避策として提案されました。それはまだ動作しません。☹
ヴォルフガングJeltsch

私は今自分の配色を書いています。これは明らかにこのバグを回避します。
Wolfgang Jeltsch 16年

クリスチャン、あなたはあなたのコメントを答えとして書くことができますか?結局のところ、これが私の問題に対する正しい答えです。それとも実際にバグを明らかにする質問に対処するための他のアプローチはありますか?
Wolfgang Jeltsch 16年

回答:


5

これは明確な答えではなく、問題は542のように聞こえます。どうやらhi ...、.vimrcにそれらのステートメントを直接書き込む代わりに、独自の基本的なcolorchemeを書くことによって、それを回避することができます。


このVimの問題が原因だと思います。だからあなたの反応は本当に私の問題に対する正しい答えのようです。
Wolfgang Jeltsch 16年

3

実際には、カスタムハイライトをvimrcではなく、カスタム構文ファイルに配置する必要があります。

これらのファイルは、が予期されるファイルタイプである~/.vim/after/syntax/filetype.vim場所に配置する必要がありますfiletype。構文ファイルにほとんど満足しているが、いくつかのコマンドを追加したい場合は、次の手順を実行できます(から取得:h mysyntaxfile-add):

  1. そこに「after / syntax」というディレクトリを作成します。Unixの場合:

    mkdir ~/.vim/after
    mkdir ~/.vim/after/syntax
    
  2. 使用したいコマンドを含むVimスクリプトを記述します。たとえば、C構文の色を変更するには:

    highlight cComment ctermfg=Green guifg=Green
    
  3. そのファイルを「after / syntax」ディレクトリに書き込みます。「.vim」を追加した構文の名前を使用します。C構文の場合:

    :w ~/.vim/after/syntax/c.vim
    

それでおしまい。次にCファイルを編集するときは、コメントの色が異なります。Vimを再起動する必要すらありません。

:h mysyntaxfile独自の構文ファイルを修正する方法についての情報を取得するのに適した場所です。このトピックに関するいくつかの章として、Vimscript The Hard Way学びます。


2
すべてのファイルタイプの強調表示を変更したい場合はどうすればよいですか。たとえば、ファイルの種類に関係なく、コメントの色を濃い青にしたいとします。
Wolfgang Jeltsch 2016年

私はあなたが提案したアプローチを多かれ少なかれ試しました。ファイルを追加し、ディレクトリ.vimrc/highlighting.vimを作成して、このディレクトリを指す.vimrc/syntax/after* filetype *形式のシンボリックリンクをいくつか追加しました。構文の強調表示はまだ機能しません。.vim.vimrc/highlighting.vim
Wolfgang Jeltsch 2016年

@WolfgangJeltschうん、私の投稿とドキュメントでは、ディレクトリは~/.vim/after/syntax~/.vimrc
許可さ

そのとおりです。ただし、これは私のコメントのタイプミスにすぎません。実は、私はディレクトリで働いていた.vimし、構文の強調表示は、おそらくこのバグ542の仕事、しませんでした
ヴォルフガングJeltsch

いや!機能していません。
Yar

1

それだけの価値があるので、私はMacVim(8.1.950(155))でこの問題を抱えていました。colorscheme.vimrcの後に強調表示ステートメントを配置すると、修正されました。例えば:

highlight SpellCap guisp=Yellow
...
colorscheme evening

->

colorscheme evening
...
highlight SpellCap guisp=Yellow

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.