emacs에서 현재 버퍼에 대한 쓰기 권한을 수정하는 방법은 무엇입니까?


17

버퍼를 죽이거나 다시 열지 않고 emacs 내부에서 파일에 대한 쓰기 권한을 변경할 수 있습니까?

때로는 파일을 열기 전에 파일에 대한 권한을 수정하는 것을 잊어 버립니다. 내부 emacs ( M-! chmod u+w filename) 에서 권한을 수정할 수 있지만 쓰기 보호 상태로 유지되고 파일 수정을 거부하는 버퍼는 업데이트되지 않습니다.

버퍼 내에서 권한을 업데이트하는 방법이 있습니까? 이것을 바로 가기에 할당 할 수 있다면 보너스 포인트!

답변:


16

파일 모드를 변경 한 후 편집하기 전에 실행 M-x revert-buffer하여 파일을 다시로드하십시오. 파일이 쓰기 가능하면 버퍼는 더 이상 읽기 전용이 아닙니다.

또는 C-x C-q( read-only-mode)를 입력하십시오 . 버퍼가 더 이상 읽기 전용이 아닙니다. 편집하고 저장할 수도 있지만 읽기 전용 파일을 덮어 쓸지 묻는 확인 메시지가 표시됩니다.


Cx Cq는 여전히 작동하지만 emacs 24.3에서 이제 토글 읽기 전용이 아니라 읽기 전용 모드를 호출하고 토글 읽기 전용이 비활성화되었습니다.
Paul Rubel

9

버퍼의 읽기 전용 상태를 변경하려면 C-xC-q(toggle read-only-mode)을 사용하십시오. 파일 권한을 변경하려면 dired파일의 디렉토리 ( C-xd)에서 실행 하고 파일을 검색 하여 모드를 변경 C-s하는 M데 사용할 수 있습니다.


3
분명히, 당신은 놓쳤습니다 dired-jump(보통 바운드 C-x C-j). 그것은 실행 dired과 편집중인 파일의 행으로 이동합니다.
CJM

2
@cjm :로드하지 않으면 작동하지 않습니다 dired-x.
choroba

죄송합니다 dired-jump. 약 20 년 전에 자동로드를 설정 한 것을 잊었습니다 . 난 그것을 추천 해.
cjm

바인딩은 동일하지만 짜증나게 toggle-read-only로 대체되었습니다 read-only-mode.
찰리 마틴

2

워크 플로에서 버퍼의 파일 권한을 반복적으로 변경해야하는 경우 사용자 지정 기능을 사용하면 다음과 같은 도움이됩니다.

이것은 유닉스 머신에서만 작동합니다 (시스템 명령 "chmod"실행)

(defun chmod-plus-w ()
  (interactive)
  (shell-command-to-string (concat "chmod +w " (buffer-file-name (current-buffer))))
  (revert-buffer))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.