2016-05-24 5 views
0

this私は特定の幅を超えるコードを強調表示できます。しかし、私はLaTeXのようなテキストファイルのためにそれを望んでいません。このように、私は(私の.vimrcで)試してみました:私は間違って何をやっている特定のファイルタイプについてのみVIMの設定を実行してください

if (&ft=='python' || &ft!='r') 
    highlight OverLength ctermbg=red ctermfg=white guibg=#FFD9D9 
    match OverLength /\%81v.\+/ 
endif 

?他のタイプの場合でも、すべてのコード/テキストが強調表示されます。私のLaTeXファイルは.Rnwであり、したがってset ftrnowebです。

答えて

1

.vimrcは、起動時に1回だけ読み取られます。

highlight OverLength ctermbg=red ctermfg=white guibg=#FFD9D9 

しかし、あなたはマッチあなたが(または条件なし)のファイルを開くたびにしたい場合、あなたはあなたをラップする必要があります。だから、(任意の条件を追加せずに)ハイライトを定義するための適切な場所にあります例えば(あなたの.vimrcで)自動コマンドの内部:matchコマンド、:

au BufReadPost * if &ft=='python' || &ft!='r' | match OverLength /\%81v.\+/ | endif 
+0

私はそれをコピーしましたが、毎回ハイライト表示されます。他の罠はありますか? – Xiphias

+0

@Xiphias '&ft!= 'r''はあまりにも多くのものと一致します。私は条件が間違っていると思う。ところで、私は 'is_a_text_ft()'関数に行きました。 (まあ、[実際に行った](https://github.com/LucHermitte/lh-vim-lib/blob/master/autoload/lh/ft.vim#L53)) –

+0

@Luc Hermitte:Ha、shame on me 。私は '=='と '!='を入れ替えただけですが、 '&&'ではなく '||'を保持しました。今、それは動作します:-)参考にしていただきありがとうございますが、そのコードは私のvimscriptの能力の上にあります。私は上記のことに固執するでしょう:-) – Xiphias

0

Vimは、ファイルの特定のシンタックスハイライトのこのタイプの構文ファイルがあります。

~/.vim/syntax/ディレクトリ(Windows以外のマシンの場合)の下にpython.vimを作成する必要があります。その後python.vim

highlight OverLength ctermbg=red ctermfg=white guibg=#FFD9D9 
match OverLength /\%81v.\+/ 

にこの方法を以下を追加するには、vimrcがきれいに残り、ファイルタイプ特有のコードの多くでいっぱいに取得していません。

構文ファイルの詳細については、:h syn-filesを参照してください。

関連する問題