Emacs: 버퍼의 일부를 읽기 전용으로 만들기

Emacs: 버퍼의 일부를 읽기 전용으로 만들기

저는 가끔 파일을 편집하는데 emacs, 파일의 일부는 편집하면 안 되는 문서나 기타 콘텐츠이고, 다른 부분은 자유롭게 편집하고 새 텍스트를 만들 수 있는 "재생 영역"입니다.

질문: 만들 수 있나요?부분emacs 버퍼는 읽기 전용인가요?

가장 간단한 예는 행 1-100을 읽기 전용으로 만드는 것입니다(예:). 더 복잡한 예(emacs 북마크와 유사)는 [readonly]와 사이의 모든 텍스트를 [/readonly]편집할 수 없게 만드는 것입니다.

나는 이것을 검색했지만 유용한 것을 찾지 못했습니다.

답변1

예, 텍스트 속성을 사용하여 버퍼의 일부를 읽기 전용으로 만들 수 있습니다. 아래 코드는 점과 마커 사이의 영역에 영향을 미치는 make-region-read-only두 가지 새로운 명령을 정의합니다. make-region-read-write명령이 실행될 수 있도록 코드를 .emacs 파일에 넣으세요 Meta-x.

(defun make-region-read-only (start end)
  (interactive "*r")
  (let ((inhibit-read-only t))
    (put-text-property start end 'read-only t)))

(defun make-region-read-write (start end)
  (interactive "*r")
  (let ((inhibit-read-only t))
    (put-text-property start end 'read-only nil)))

관련 정보