2

私はvim 7.3を使用しており、python 2.7でスクリプトを作成しています。いくつかの構文の強調表示がありますが、ほとんどは数値、文字列、コメント、およびいくつかのコア関数とキーワードのみです。コアvim python.vim構文ファイルとvim.orgのファイルを試しました

変数関数名を(別の色で)強調表示する方法はありますか?

4

1 に答える 1

6

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でやりたいことが本当にできない理由を簡単に示しています。継承とメタクラスを使用すると、さらに複雑にすることができます。

于 2012-05-10T07:46:15.037 に答える