>

함수를 작성하는 방법을 알려주세요 특정 디렉토리에 버퍼를 생성하고 방문합니다 (기본 디렉토리 이름은 하드 코딩되어 있지만 디렉토리를 변경할 수있는 기회가 있습니다)-사전 정의 된 접두사 (현재 날짜는 yyyymmdd 형식) ) 그런 다음 제목을 마무리하도록 제안합니다 (예 : 20170106EMACS_QUESTION.tex ) )?

따라서 함수를 호출하면 다음과 같은 순서로 수행됩니다.

1) 버퍼의 디렉토리 경로를 요청하십시오 ( nil 인 경우). , 하드 코딩 된 기본값으로 자동 완성)

2) 타임 스탬프 yyyymmdd 와 함께 파일 이름을 요청하십시오.  처음에 이미 채워져 있습니다.

3) 위의 메타 데이터로 버퍼를 만들어 방문하십시오

completing-read read-string  그리고 find-file  유용한 것 같습니다.

설명을 준수하도록 변경하는 방법을 모르는 다음 코드가 도움이 될 수도 있습니다.

(defun add-note (d)
  (interactive "d")
  (let ((default-directory d))
    (find-file (format-time-string "%Y%m%d-CUSTOM-TITLE"
    (current-time)))))

  • 답변 # 1

    "파일 만들기"는 무슨 뜻입니까? 버퍼를 파일로 저장할 수 있도록 파일 버퍼를 방문 하시겠습니까?

    당신이 read-file-name 기능을 찾고 있다고 생각합니다 . 파일 이름을 읽고 다음과 같은 메시지를 표시합니다.

    (read-file-name PROMPT &optional DIR DEFAULT-FILENAME MUSTMATCH INITIAL PREDICATE)
    
    

    C-h f read-file-name 더 자세히 알려줍니다. 그러나 기본적으로 DIR  완료 및 DEFAULT-FILENAME 의 디렉토리입니다.  기본 (상대) 파일 이름입니다.

    이것 또는 다른 것 이상을 찾고 있다면 질문을 조금 명확히하십시오.

    파일 이름을 읽은 후에는 버퍼를 방문 할 수 있습니다. find-file 를 정의하는 코드를 참조하십시오   find-file-noselect 사용  등.

    또는 find-file . 그것은 read-file-name 를 사용합니다  ( find-file-read-args 참조) ). 그러나 기본 파일 이름을 제공 할 수는 없습니다. 그렇게하면 default-directory 를 바인딩하십시오   find-file 를 호출하기 전에 원하는 디렉토리로 .

    <시간>

    댓글 후에 업데이트 :

    파일 이름 접두사가 자동으로 삽입되도록하려면 INITIAL read-file-name 에 대한 논쟁 . 그게 다야. 문서를 읽으십시오 : C-h f read-file-name .

    Fifth arg INITIAL specifies text to start with.
    
    

    그리고

    If DEFAULT-FILENAME is omitted or
    nil, then if INITIAL is non-nil, the default is DIR combined with
    INITIAL; otherwise, if the current buffer is visiting a file,
    that file serves as the default; otherwise, the default is simply
    the string inserted into the minibuffer.
    
    

관련 자료

  • 이전 emacs - Ctrl-z 키 바인딩에 실행 취소 명령을 할당하는 방법은 무엇입니까?
  • 다음 emacs - git-messenger는 Magit을 사용한 커밋 표시를 지원합니까?