Odpowiada to na twoje ogólne pytanie, ale nie szczególnie na wspomniany przypadek użycia (przenoszenie fragmentów kodu).
Emacs ma teraz tak zwany region niesąsiadujący , o który pytasz. Vanilla Emacs nie zapewnia żadnego specjalnego sposobu tworzenia niesąsiadującego regionu, chyba że jest to prostokąt . Ale biblioteki Zones tak.
Library Zones pozwala zdefiniować wiele stref w buforze. Lista stref jest regionem nieciągła . Możesz również myśleć o tym jak o wielu regionach, w zależności od tego, jak chcesz z niego skorzystać. W dowolnym momencie możesz zdefiniować wiele list stref, z których każda jest przypisana do innej zmiennej stref, i możesz przełączać się między nimi.
Jeśli używasz również biblioteki Bookmark + , możesz trwale zapisywać listy stref i przywracać je w późniejszych sesjach Emacsa. Zakładka + pozwala także przypisywać dowolne tagi do zakładki. Oznacza to, że możesz otagować listę stref.
Strefy na danej liście stref są zwykle w tym samym buforze, ale nie muszą. W tym przypadku lista stref jest bardziej ogólna niż region niesąsiadujący. Jest to również bardziej ogólne, że każda strefa może zawierać dodatkowe informacje, poza granicami stref, i może mieć identyfikator.
Istnieje kilka sposobów utworzenia strefy. Jednym z najłatwiejszych w użyciu jest C-x n a
: definiuje strefę z aktywnego regionu i dodaje ją do bieżącego zestawu stref. ( C-x n n
( narrow-to-region
) również to robi, oprócz zwężania).
Oto niektóre rzeczy, które możesz zrobić z zestawem (listą) stref:
- Sortuj je.
- Łącz (przylegaj) strefy przyległe lub zachodzące na siebie (co obejmuje ich sortowanie).
- Przecinaj je.
- Zawęź bufor do strefy na liście. Cykl między zawężeniami. Zobacz wiele zwężeń .
- Wybierz strefę z listy jako aktywny region. Jeździć na rowerze między regionami.
- Wyszukaj je (najpierw zostaną automatycznie zjednoczone). Do tego potrzebujesz biblioteki Isearch + .
- Zapytanie-zamień je.
- Zaznacz je i zaznacz je. (Do tego potrzebujesz podświetlenia biblioteki lub biblioteki
facemenu+.el
.
Zobacz także Narrow Indirect , który pozwala tworzyć bufory pośrednie, które są klonami danego bufora i które są zawężone do różnych jego części.