2
가끔씩 다른 소스 트리의 파일을 열어 현재 트리와 비교합니다. 나는 함수가 실행될 때 사용자가 유지하거나 변경하라는 "기본 트리"에 있지 않은 열린 파일을 모두 죽이는 함수를 갖고 싶습니다.사용자가 입력 한 디렉토리에없는 열린 파일을 어떻게 죽일 수 있습니까?
가끔씩 다른 소스 트리의 파일을 열어 현재 트리와 비교합니다. 나는 함수가 실행될 때 사용자가 유지하거나 변경하라는 "기본 트리"에 있지 않은 열린 파일을 모두 죽이는 함수를 갖고 싶습니다.사용자가 입력 한 디렉토리에없는 열린 파일을 어떻게 죽일 수 있습니까?
default-tree를 원하는 디렉토리의 이름으로 설정하십시오 (절대 경로 여야 함).
(defun bruce-connor-buffer-killer()
(interactive)
(unless (file-directory-p default-tree) (error "You forgot to set `default-tree'."))
(let ((case-fold-search nil)
(dir-length (length default-tree)))
(dolist (buffer (buffer-list))
(when (buffer-file-name buffer)
(unless (equal t (compare-strings
(expand-file-name (buffer-file-name buffer)) 0 dir-length
default-tree 0 nil)))
(kill-buffer buffer)))))
작동 했습니까? 나는 그것을 실제로 테스트하지 않았다. – Malabarba
안녕 브루스, 귀하의 답변에 대한 감사합니다 ... 나는 한 다음 (defun는 킬 - 기타 - 파일 (하자 ((대소 접이식 검색 무기 호) (DIR-길이 (길이 기본 트리)) (버퍼 길이가 1 인 경우) default-dirist (buffer-file-name 버퍼) 트리 0 무기 호))) (죽일 버퍼 버퍼)))) ) (글로벌 설정 키 [F6] '죽일 - 다른-파일)하지만이 메시지가 얻을 : 잘못된 형식 인수를 : commandp , kill-other-files 내가 뭘 잘못 했니? – SFbay007
실마리를 잊어 버렸습니다. 바보 같은 실수가있는 경우 – Malabarba