検索

ホームページ  >  に質問  >  本文

vim 複数行一致 行頭まで削除

問題の説明
より大きなファイルを処理する必要があり、各行の一致する文字列より前のコンテンツが削除されます。ファイルコンテンツの形式は次のとおりです:

リーリー

各行の最初のsegmentfault発生前から行頭までの内容を削除できる見込みです

期待される処理結果は以下の通りです。 リーリー

現在のソリューション
実行にはマクロを使用します

リーリー

短所: 効率が低く、非常に時間がかかります

期待される解決策
直接列編集 (ctrl + v) を実行して、行の先頭までの各行の一致する位置を削除することを期待します。
それを達成するにはどうすればよいですか?

ringa_leeringa_lee2782日前671

全員に返信(3)返信します

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 16:36:34

    定期的な置換と列の編集をお試しください。キーワードは別の位置にあるため、直接編集できません。 リーリー

    返事
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 16:36:34

    @ixx 正規表現という考えは正しいです
    しかし、もっと簡単な解決策があります

    リーリー

    ze マッチングモードが終了したことをマークします

    返事
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 16:36:34

    質問の作成者は、vim の列モード (Ctrl-v) を使用して、複数の行を選択して単語セグメントの前の部分に一致させたいと考えていると思います。
    しかし、それは不可能なので機能しません
    1) 列モードでは、行の先頭または末尾でマッチングを行う方がよく、不規則なマッチングブロックを形成することはできません。
    2) 1 行目の行頭からセグメントまでの s は 3 W、2 行目と 3 行目からセグメントまでの s は 2 W です。これを一度に行うのは簡単ではありません。 (同じ理由で、W を w に置き換えても機能しません)

    列モードは、テキスト がきちんと配置 したり、簡単に 配置できる場合の処理に適しています。

    ==========
    別の回答では、正規表現を使用して一致と置換を行うと非常に便利であると述べています。

    返事
    0
  • キャンセル返事