부모 디렉토리가 아직없는 새 파일 열기


9

부모 디렉토리가 아직없는 새 파일을 열 때 쉘 창이나 Emacs 쉘 ​​버퍼를 연 다음 mkdir디렉토리를 엽니 다 . 이 성가신 것을 찾습니다. 더 쉬운 방법이 있습니까?

답변:


16

그것이 당신의 질문이라면 그렇게 할 필요가 없습니다.

C-x C-f /some/new/directory/newfile.txt

Emacs는 디렉토리 /some/new/directory/가 아직 존재하지 않음 을 알리는 메시지를 인쇄합니다 Use M-x make-directory RET RET to create the directory and its parents.

새 파일의 새 버퍼에 텍스트를 삽입하십시오 newfile.txt.

C-x C-s 파일을 저장합니다.

Emacs는 누락 된 중간 디렉토리를 만들 것인지 묻습니다 (예 : new/directory/. y"yes"를 누르십시오) .

매우 성가신 일이 아닙니다. 기존 디렉토리의 이름을 쉽게 잘못 입력했을 수 있으므로 UI에서 확인을 요청해야합니다.


당신은 또한 M-x make-dir tab( emacs -Q작동하는지 확인하기 위해 테스트 됨)을 사용할 수 있으며 RET RET추가 프롬프트없이 디렉토리를 만듭니다.
Jonathan Leech-Pepin

1
@ JonathanLeech-Pepin : 물론입니다. (메시지가 말한 것입니다.) 그러나 이미 새 파일 버퍼를 열었다면 파일을 저장하고로 dir 생성을 확인하십시오 y.
Drew

7

에 대한 ido사용자

  • C-x C-f(이를 호출해야합니다 ido-find-file) 및 존재하지 않는 경로를 입력합니다.
  • M-m( mAke new dir의 니모닉 ?) 을 누릅니다 . 을 누르십시오 RET.
  • 새 디렉토리에 작성하려는 새 파일 이름을 계속 입력하십시오. 을 누르십시오 RET.

1

이 상황에서 emacs는 다음과 같이 말했을 것입니다.

use M-x make-directory RET RET to create the directory and its parents

귀찮습니까?

나는 말할 것입니다.


0

당신이 정말로 확인하려면 find-file하지 이미 존재하면 자동으로 부모 디렉토리를 생성, 당신은 당신의 init 파일에서 다음을 수행 할 수 있습니다.

(defun my-find-file (orig-fun &rest args)
  (let* ((filename (car args))
         (directory (file-name-directory filename)))
    (if (not (file-directory-p directory))
        (make-directory directory t))
    (apply orig-fun args)))

(advice-add 'find-file :around 'my-find-file)

결국, Emacs는 확장 가능하고 사용자 정의 할 수 있도록 설계되었습니다.

참고:

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