3

VIM を使用して Python でコードを作成すると、関数のパラメーターを変更または削除する必要が生じることがよくあります。ci,2 つのコンマの間のテキストを選択するようなコマンドを見つけることを期待していました。と で一致する括弧または括弧を選択するようなものci"ですci(

def function1(a,b,delete_me, c):
    pass

def function2(a,b,delete_me):
    pass

def function3(a,b,delete_me=[1,2,3]):
    pass

VIM を使用して期待される結果を効率的に達成するにはどうすればよいですか?

4

3 に答える 3

4

パラメーターの一致は、基になる構文に依存するため、(特に、入れ子になった関数呼び出しや配列などの構成では) 困難です。そのため、組み込みの内部/外部パラメーターテキスト オブジェクトはありません。

私はargtextobj.vim pluginを使用していますが、これはかなりうまく機能します。

于 2013-03-08T07:29:22.230 に答える
1

単純なパラメーターの場合、ciw(単語内の変更) は同等です。

3 番目の例では、カーソルがパラメーターの先頭にある場合cf]( find に変更]) が機能します。

于 2013-03-08T07:35:03.820 に答える
1

このための組み込みコマンドはないと思いますが、役立つ例をいくつか示します。

テキストの選択:

ve-- 単語境界の
vE終わり -- 行の終わり

削除:

de-- 単語の終わりまで
dE削除 -- 行末まで削除

多数の同一のものを削除する必要がある場合は、いくつかの正規表現マジックも機能します。-- で始まり、で終わるものを
:%s/\,d.*\]//gすべて置き換えます,d]""

def function3(a,b,delete_me=[1,2,3]):
    pass

になる

def function3(a,b):
    pass
于 2013-03-08T07:26:11.977 に答える