2012-05-10 24 views
2

私はPython 2.7でスクリプティングするvim 7.3を使用しています。私はいくつかの構文の強調表示をしていますが、数字、文字列、コメント、およびいくつかのコア関数とキーワードのためだけです。 変数関数名の強調表示私はコアVimのpython.vim構文ファイルを試してみました、とthe one from vim.orgPythonの変数と関数のvim構文の強調表示ですか?

は(別の色)を取得する方法はありますか?

答えて

6

実際にPythonの変数と関数の違いはありません(どちらもPythonのファーストクラスのオブジェクトです)。実際にコードを実行してcallable(var)が真であるかどうかテストすることなく、ほとんど不可能です。

そして、このような行動は混乱するだろう場合は常にあります。

class Dummy(object): 
    pass 
foo = Dummy() 
if False: 
    foo() 
foo.__call__ = lambda self: 'meow' 
foo.x = 'y' 
foo() 

ときあなたは今、関数としてfooを強調するだろうか? __call__の割り当ての後に呼び出すことはできませんが、同じオブジェクトに対して異なる構文ハイライトを使用するとかなり混乱します。もちろん、その例はむしろばかです。しかし、なぜそれが本当にあなたが望むことをPythonで行うことができないのかを簡単に示しています。継承とメタクラスを使用すると、さらに複雑にすることができます。

+0

+1。文字の強調表示の主な理由は、コードの方が優れています。 naught101は、定義内の関数名を強調したいときや、関数が呼び出されたとき(すなわち、かっこが続くとき)に強調したいかもしれません。質問は風*に対しておしっこするのが良い考えであるかどうかです); – pepr

+0

あなたがゴールデンシャワーを好きなパルクなら、はい! ;) – ThiefMaster

+0

ポイントを獲得しました。良い答え、誤った質問が許す限り。関数や変数を同じ色で強調表示する価値があるのか​​、多かれ少なかれ、すべてを強調表示するのだろうか? – naught101

関連する問題