열려있는 모든 파일을 나열하는 불량 버퍼를 어떻게 만들 수 있습니까?


9

dired버퍼 에서 디스크로 항목을 굽는 메커니즘이 있습니다. 불행히도, 내가 패치 한 파일은 파일 시스템에 흩어져 있습니다. dired열려있는 모든 파일에서 버퍼를 만들려면 어떻게 해야합니까?



@Drew 나는 적어도 엄격하게 복제하지는 않을 것이라고 주장했다. 이 질문은 단순히 '파일에 바인딩 된 모든 열린 버퍼 목록을 얻는 방법은 무엇입니까?'입니다.
Sean Allred

@Drew 구체적으로 :(sort (remove nil (mapcar #'buffer-file-name (buffer-list))) #'string<)
Sean Allred

추가 된 정보는 buffer-list존재하고 (알고있는) 파일이 없을 때 buffer-file-name반환 nil합니다 (알지 못했던). 제안 된 사본에는이 정보가 포함되어 있지 않거나 필요하지 않습니다.
Sean Allred

1
@Drew 내 경험상 모든 질문을 가능한 모듈 식으로 만드는 것은 장점이 아니라 단점입니다. 그것은 구글에서 이것을 우연히 발견 한 사람들의 유용성을 감소 시키며 Google이 유스 케이스 를했기 때문에 단순히 등록하지 않을 것 입니다. TeX.SE에 대한 모든 질문을 원하고 동일한 개념적인 대답을 가진 질문을 속이는 경우 중재는 악몽이되어 사이트는 어둠에 빠질 것입니다.
Sean Allred

답변:


12

dired명령은 파일 이름 목록을 인수로 허용합니다. 하나를 만들고 전달하십시오.

(dired
 (cons
  "Open Files"
  (sort (remove nil (mapcar #'buffer-file-name (buffer-list)))
       #'string<))) 

나는 이것이 하나의 파일을 놓친다고 생각합니다. 목록을 전달하면 해당 목록의 첫 번째 요소가 디렉토리 이름으로 사용되고 나머지는 파일로 간주됩니다. 이 방법에 대해 :(dired (cons "*Open Files*" (sort (remove nil (mapcar #'buffer-file-name (buffer-list))) #'string<)))
glucas

참고 : 디스크에 아직 저장되지 않은 파일 관련 버퍼가 있으면 오류가 발생합니다.
Sean Allred

1

dired 함수에 문자열 목록을 제공하십시오. 예 :

(dired '("custom dired" ".emacs.d/init.el" "mydotfiles/.bashrc"))

편집하다

@ Malabarba 답변은 가장 좋은 방법입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.