0

私のテキストは次の形式に従います。

HEADER hello
...
...

HEADER neighbour
...
...
...

HEADER test1
HEADER test2

HEADER*\nのすべてのインスタンスを選択して、新しいドキュメントにコピーしたいと考えています。したがって、結果は次のようになります。

HEADER hello
HEADER neighbour
HEADER test1
HEADER test2

スペースが保持されているかどうかは問題ではありません。これは、標準の emacs 機能で可能ですか?

4

3 に答える 3

4

ドキュメント全体を新しいドキュメントにコピーしてから、 を使用する方が簡単な場合がありますdelete-non-matching-lines

M-x delete-non-matching-lines<RET> ^HEADER<RET>
于 2013-09-04T02:49:20.190 に答える
2

それほど自明ではありませんが、そのような関数を自分で定義できます。ここのように: Emacs は一致する行をコピーします

于 2013-09-04T02:43:21.863 に答える
2

バッファで、試してください

 C-u M-x occur RET ^HEADER.* RET

必要な出力だけを含む新しいバッファーを作成する必要があります。次に、そのバッファに切り替えてファイルとして保存するか、 でマークしてC-x hからM-w、新しいバッファまたは必要なものにヤンクします。

ちなみに、すぐに使える答えではありませんが、価値のあるものとして、Emacsに使用されたかなり便利な「all」コマンドを提供するall.elという素晴らしいライブラリがあります(私の記憶が正しければ) ) xedit (古いメインフレームのテキスト エディタ)。ライブラリはここにあります。

于 2013-09-04T19:19:06.477 に答える