일부 (예 : 현재) 버퍼가 파일을 방문하고 있는지 확인하고 싶습니다. 나는 말할 수 있습니다 :
(if (buffer-file-name) ...)
그러나 그것은 매우 우아하지 않은 것 같습니다. 제가 관심있는 것은 실제 버퍼 이름 이 아닌 부울 값 입니다. buffer-file-name
함수가 Elisp로 작성된 경우 소스를 조사하여 사용 내용을 찾을 수는 있지만 C로 작성되었으며 Emacs 소스를 설치할 수는 있지만 elisp 이름을 찾을 수 없습니다. 어쨌든 내가 무엇을하고 있는지 확인하는 기능.
내가 필요로하는 것은 현재 버퍼 파일의 이름을 기반으로 디렉토리를 만들고 싶습니다. 현재는이 작업을 다소 수행하고 있습니다.
(make-directory (if (buffer-file-name) (file-name-base) "default-dir"))
그렇다면 이것을하는 Elisp- 아이디 오마 틱 방법은 무엇입니까?
(and (buffer-file-name) t)
이상하게 보인다는 것에 동의합니다 .
(if (buffer-file-name) ... )
우아 하지 않다고 생각한다면 , 오랫동안 아주 오랫동안 코딩하지 않았습니다. 여기서 만 추악 해집니다.
buffer-file-name
실제로 사용에 반대하는지 잘 모르는 경우 올바른 방법입니다 (정말 원한다면t
그렇게(and (buffer-file-name) t)
나쁘지 않은 IMO입니다). 구현은filename
버퍼 C 구조체 의 필드를 읽는 것인데, 이는 Elisp에서 직접 액세스 할 수 없습니다. 결국, 그것은 null이거나 아닌 포인터 일뿐입니다.