これは一般的な質問に対応しますが、特に言及したユースケース(コードを少し移動する)には対応しません。
Emacsには、非隣接領域と呼ばれるものがあります。これは、あなたが尋ねている種類の選択です。Vanilla Emacsは、長方形である場合を除いて、非連続領域を作成する特別な方法を提供しません。しかし、ライブラリゾーンはそうします。
ライブラリゾーンでは、バッファに複数のゾーンを定義できます。ゾーンのリストは、連続しない領域です。また、使用方法に応じて、複数のリージョンと考えることもできます。複数のゾーンリストをいつでも定義して、それぞれ異なるゾーン変数に割り当てることができ、それらを切り替えることができます。
ライブラリBookmark +も使用する場合、ゾーンのリストを永続的に保存し、後のEmacsセッションでそれらを復元できます。Bookmark +では、ブックマークに任意のタグを割り当てることもできます。つまり、ゾーンのリストにタグを付けることができます。
通常、特定のゾーンリスト内のゾーンは同じバッファ内にありますが、そうである必要はありません。この場合、ゾーンリストは非連続領域よりも一般的です。各ゾーンには、ゾーンの制限だけでなく、追加の情報を含めることができ、識別子を持つことができるという点でもより一般的です。
ゾーンを作成するにはいくつかの方法があります。最も簡単な方法の1つは、C-x n a
アクティブリージョンからゾーンを定義し、それを現在のゾーンセットに追加することです。(C-x n n
(narrow-to-region
)は、ナローイングに加えて、これも行います。)
これらは、ゾーンのセット(リスト)でできることの一部です。
- それらを並べ替えます。
- 隣接または重複するゾーンを結合(結合)します(並べ替えを含む)。
- それらを交差させます。
- リスト内のゾーンにバッファを絞り込みます。絞り込み間を循環します。複数のナローイングを参照してください。
- リスト内のゾーンをアクティブリージョンとして選択します。地域間を循環します。
- それらを検索します(最初に自動的に結合されます)。このためには、ライブラリIsearch +が必要です。
- それらに対するクエリ置換。
- それらをハイライトしてハイライトを解除します。(このためには、ライブラリハイライトまたはライブラリが必要
facemenu+.el
です。
Narrow Indirectも参照してください。これにより、特定のバッファのクローンであり、バッファのさまざまな部分に絞り込まれる間接バッファを作成できます。