이것은 일반적인 질문에 응답하지만 언급 한 유스 케이스 (코드 조각 이동)에는 특별히 응답하지 않습니다.
이맥스는 이제 비 연속 영역 이라고 부르는 것을 가지고 있는데, 이것은 당신이 요구하는 선택입니다. Vanilla Emacs는 사각형 이 아닌 경우를 제외하고 비 연속 영역을 만드는 특별한 방법을 제공하지 않습니다 . 그러나 도서관 구역 은 않습니다.
라이브러리 영역을 사용하면 버퍼에 여러 영역 을 정의 할 수 있습니다 . 영역의리스트는 비 연속 영역이다 . 사용 방법에 따라 여러 지역 으로 생각할 수도 있습니다. 언제든지 여러 구역 목록을 정의 할 수 있으며 각 구역 목록은 서로 다른 구역 변수에 할당되며 서로 전환 할 수 있습니다.
라이브러리 Bookmark + 도 사용하는 경우 영역 목록을 지속적으로 저장하고 이후 Emacs 세션에서 해당 영역을 복원 할 수 있습니다. Bookmark +를 사용하면 임의의 태그를 책갈피에 지정할 수도 있습니다. 즉, 영역 목록에 태그를 지정할 수 있습니다.
주어진 영역 목록의 영역은 일반적으로 동일한 버퍼에 있지만 반드시 그럴 필요는 없습니다. 이 경우 영역 목록이 비 연속 영역보다 일반적입니다. 또한 각 영역은 영역 제한 외에 추가 정보를 포함 할 수 있으며 식별자를 가질 수 있다는 것이 더 일반적입니다.
영역을 만드는 방법에는 여러 가지가 있습니다. 가장 쉬운 방법 중 하나는 사용하는 것입니다 C-x n a
. 활성 영역에서 영역을 정의하고 현재 영역 세트에 추가합니다. ( C-x n n
( narrow-to-region
)도 좁히는 것 외에도이 작업을 수행합니다.)
다음은 여러 영역 (목록)으로 수행 할 수있는 작업입니다.
- 그것들을 정렬하십시오.
- 인접 또는 겹치는 영역을 통합 (통합)합니다 (정렬 포함).
- 그것들을 교차 시키십시오.
- 버퍼를 목록의 영역으로 좁 힙니다. 좁히는 과정을 반복하십시오. 다중 축소를 참조하십시오 .
- 목록에서 영역을 활성 영역으로 선택하십시오. 지역 간 순환
- 그것들을 검색하십시오 (먼저 자동으로 연결됩니다). 이를 위해서는 Isearch + 라이브러리가 필요합니다 .
- 그것들을 쿼리 대체하십시오.
- 강조하고 강조 표시를 해제하십시오. (이를 위해서는 라이브러리 하이라이트 또는 라이브러리 가 필요 합니다
facemenu+.el
.
Narrow Indirect를 참조하십시오.이 버퍼 를 사용하면 지정된 버퍼의 복제본이고 다른 부분으로 좁혀지는 간접 버퍼 를 만들 수 있습니다 .