Це відповідає на ваше загальне запитання, але не особливо на вказаний вами випадок використання (переміщення бітів коду навколо).
Тепер у Emacs є те, що він називає неспорідненим регіоном , що таке вибір, про який ви питаєте. Vanilla Emacs не передбачає особливого способу створення непостійного регіону, за винятком випадків, коли це прямокутник . Але бібліотечні зони так і є.
Зони бібліотеки дозволяють визначати кілька зон у своєму буфері. Список зона є несуміжних областю . Ви також можете розглядати це як кілька регіонів, залежно від того, яким чином ви хочете ним скористатися. Ви можете в будь-який час визначити кілька списків зон, кожен з яких присвоєний іншій змінній зон, і ви можете перемикатися між ними.
Якщо ви також використовуєте бібліотеку Bookmark +, тоді ви можете постійно зберігати списки зон і відновлювати їх у наступних сесіях Emacs. Закладка + також дозволяє призначати закладку довільні теги. Це означає, що ви можете позначити список зон.
Зони в заданому списку зон зазвичай знаходяться в одному буфері, але вони не повинні бути. У цьому перелік зон є загальнішим, ніж непостійний регіон. Більш загальним є те, що кожна зона може містити додаткову інформацію, крім просто обмежених зон, і вона може мати ідентифікатор.
Існує кілька способів створення зони. Одне з найпростіших у використанні C-x n a
: воно визначає зону з активної області та додає її до поточного набору зон. ( C-x n n
( narrow-to-region
) також робить це, крім звуження.)
Ось деякі речі, які ви можете зробити з набором (списком) зон:
- Сортуйте їх.
- Об’єднайте (з’єднайте) сусідні або перекриваються зони (що включає їх сортування).
- Перетинайте їх.
- Звужте буфер до зони у списку. Цикл серед звужень. Див. Декілька звужень .
- Виберіть зону зі списку як активну область. Цикл серед регіонів.
- Шукайте їх (вони спочатку автоматично об’єднуються). Для цього вам потрібна бібліотека Isearch + .
- Запит на заміну над ними.
- Виділіть і висвітліть їх. (Для цього вам потрібна бібліотека Highlight або бібліотека
facemenu+.el
.
Див. Також Вузький непрямий , який дозволяє створювати непрямі буфери, які є клонами даного буфера і звужуються до різних його частин.