私はvim 7.3を使用しており、python 2.7でスクリプトを作成しています。いくつかの構文の強調表示がありますが、ほとんどは数値、文字列、コメント、およびいくつかのコア関数とキーワードのみです。コアvim python.vim構文ファイルとvim.orgのファイルを試しました
変数と関数名を(別の色で)強調表示する方法はありますか?
私はvim 7.3を使用しており、python 2.7でスクリプトを作成しています。いくつかの構文の強調表示がありますが、ほとんどは数値、文字列、コメント、およびいくつかのコア関数とキーワードのみです。コアvim python.vim構文ファイルとvim.orgのファイルを試しました
変数と関数名を(別の色で)強調表示する方法はありますか?
Pythonの変数と関数の間に実際の違いはありません(どちらもPythonのファーストクラスのオブジェクトです)。したがって、実際にコードを実行し、trueかどうかをテストしない限り、これはほとんど不可能callable(var)
です。
そして、そのような振る舞いが混乱する場合が常にあります:
class Dummy(object):
pass
foo = Dummy()
if False:
foo()
foo.__call__ = lambda self: 'meow'
foo.x = 'y'
foo()
foo
今、関数としていつハイライトしますか?__call__
割り当てが完了するまで呼び出すことはできませんが、同じオブジェクトに対して異なる構文の強調表示を使用すると、かなり混乱します。もちろん、この例はかなりばかげています。しかし、Pythonでやりたいことが本当にできない理由を簡単に示しています。継承とメタクラスを使用すると、さらに複雑にすることができます。