.vimrcを手動でインポートした後にVimがハイライト設定を有効にするのはなぜですか?

.vimrcを手動でインポートした後にVimがハイライト設定を有効にするのはなぜですか?

私を掃除しています。vimrc現在は、管理しやすいように別々のファイルに分割されています。これらの変更を行った後は、末尾のスペースハイライトを除いて、すべての構成、マッピング、およびプラグインが機能しているようです。

.vim/rc/appearance.vimには次の行があります。

highlight RedundantSpaces term=standout ctermbg=red guibg=red
match RedundantSpaces /\s\+$\| \+\ze\t/ "\ze sets end of match so only spaces highlighted

私が理解しているように、最初の行はハイライトグループ「RedundantSpaces」を作成し、vimにカラーターミナルでハイライトグループと一致するすべてのテキストの背景を赤にするように指示します。 2行目は、強調表示されたグループに一致するテキストを識別するために使用されるパターンを定義します。

vimでファイルを開き、空白行にスペースを入力し始めると、赤で強調表示されません。を実行すると:source ~/.vimrc強調表示されます。

rc/*.vimすべての個々のファイルをインポートする行を削除し、上記の.vimrc2RedundantSpaces行を直接挿入すると、.vimrcvimは期待どおりに機能し、末尾のスペースが強調表示されます。

ただし、ソース行を保持しrc/*.vimてからRedundantSpacesその行をmyコマンドの最後に置くと.vimrc(つまり、このコマンドはvimが呼び出されたときに実行される最後のコマンドです)、ハイライトはまだ機能しないため、これを行う必要がありますsource ~/.vimrc

私のファイルのどの項目が強調表示と正しく対話していないのかは明らかですrc/*.vimが、それが何であるかは説明できません。このファイルのどのエントリもハイライト構成と対話してはいけません。

ここで何が間違っているのかを提案できる人はいますか?

ベストアンサー1

この質問の原因は次のとおりです。賢明なプラグイン:93行:help t_Co

" Allow color schemes to do bright colors without forcing bold.
if &t_Co == 8 && $TERM !~# '^linux'
  set t_Co=16  " << --- Causes hickup
endif

詳細ログモード()でvimを実行してvim -V15load_log.vim検索すると、実際に解析されていることがわかりますt_Co=RedundantSpacessensible後ろにあなたのappearance.vimファイル。

簡単な修正は、コードの対応する部分をコメントアウトしてそれをgitリポジトリに追加することです.vimrc。しかし、gitリポジトリに接続するとき、これは望むものではないかもしれません。

bundle別の方法は、ディレクトリから移動して別の行にsource追加することですvimrc今後あなたのグローバルループ。

つまり:

  source ~/.vim/hacks/vim-sensible/plugin/sensible.vim

  for f in split(glob ...

別のアプローチは、BufLoadにカスタムハイライトをロードすることです。

など。 …

おすすめ記事