12

私はこれが答えられたと確信していますが、クエリはグーグルには少し複雑すぎます。

要するに、私はいくつかのコードから多くの非推奨のメソッドを削除しようとしています。そのため、ファイルをスキミングして、削除したいメソッドが表示されたら、タブで始まり、文字列「def」で始まる行が表示されるまで、すべての行を削除しています。

VIMでこれを行うための簡単なマクロを作成できるようにすべきだと思っていますが、その秘訣は私を逃れることです。

これが私が削除したいものです。

def Method_to_Delete(self):
    """


    @return Control ID :
    @author
    """
    results = {}
    results['xx'] = "thingy"
    results['yy'] = 'thingy2'
    return results

def Method_to_Keep(self):
    """
     This is a method that does something wonderful!!!

    @return Control ID :
    @author
    """
    results = {}
    results['xxx'] = "WhooHoo!"
    results['yyy'] = 'yippee!!'
    return results

「defMethod_to_Delete」の行にカーソルを置き、「defMethod_to_Keep」までは削除するが含まない何かを実行したい

複数の「dd」コマンドよりも優れた方法が必要です。

4

2 に答える 2

16

Vim検索は実際にはテキストオブジェクトです!つまり、次のことが簡単にできます。

d/\s*def

次に、必要に応じてコマンドを繰り返し.ます。

于 2012-08-09T11:59:55.777 に答える
14

:delete範囲を指定してexコマンドを使用する

:,/Keep/-1d

説明

  • 完全なコマンドは:.,/Keep/-1delete
  • .,/Keep/-1deleteコマンドが機能する範囲です
  • .現在の行を意味します。
  • b / c範囲を使用しており、現在の位置から開始して、.想定してドロップすることができます
  • /Keep/「Keep」に一致する行を検索します
  • /Keep/-1一致する行を検索してから1行を減算します
  • :deleteに短絡することができます:d

詳細については、を参照してください

:h :range
:h :d
于 2012-08-09T13:31:04.593 に答える