2012-10-28 10 views
13

現在、自分のステータスラインが設定されているので、挿入モードではオレンジ、そうでなければ白です。ファイルに保存されていない変更があると、通常のモードに戻ったときに別の色にしたいのですが、なぜ私の変更が有効にならないのか不思議なウサギの穴を少し歩きます。 )小さな "[+]"は私の顔を十分に叩くことはありません;)現在のバッファに変更が保存されていないかどうかを確認するVimscript

"buf"で始まり、汚れのための述語のように見える関数は見つかりません。私は1つは存在すると仮定しますが、他の名前が付けられています。私はbufdirty()またはbufchanged()のようなものがあると期待しています。すべてのポインタ? :)

答えて

19

私はあなたが変更と0場合が変更されていない場合1を返し

:echo &mod[ified] 

を探していると思います。

+0

まさに私が探していたもの、ありがとう! – d11wtq

3

私はステータスラインの色を使用してバッファの状態を示すというアイデアが気に入っています。実際、私はStatusLineHighlight pluginを書いています。これは、変更された、読み込み専用の、変更不可能な、特殊な非ファイルの "スクラッチ"(ただし、あなたが使っている挿入モードではありません。左下隅を十分に)。

+0

興味深いことに、私はあなたのプラグインを見て、邪魔にならない程度にそれを使用するかもしれません:) – d11wtq

+0

あなたのプラグインを使用して、ありがとう。いくつかのモードだけが異なるようにすべての色を変更しましたが、うまく機能します。おそらくあなたはリストにStatusLineInsertを追加することができます(私は自分自身のautocmdを統合することができます);) – d11wtq

+0

実際には、私は挿入モードで欲しかった振る舞いを得られませんでした(そして、 .vimrcをリロードするときには逆になります)。私はあなたの知恵を盗んだが、使用するイベントについては、ありがとう! ;)https://github.com/d11wtq/dot-vim/blob/master/vimrc#L161-178 – d11wtq

関連する問題