Emacs에서 Finder를 여는 방법

4655 단어 MacelispEmacs
Emacs를 사용하면 편집중인 파일의 디렉토리를 Finder에 표시하려는 경우가 있습니다.
그런 때용 Tips입니다.

shell-command를 사용합시다.



Emacs에는 shell-command라는 편리한 함수가 있습니다.
이것은 인수에 문자열을 취하고 shell에서 실행하는 함수입니다.
M-x shell-command RET "open ."

이제 shell에서 open .를 입력하면 동일한 결과를 얻을 수 있습니다.



직접 함수를 정의합시다.



일종의 M-x shell-command 등을하는 것은 번거롭기 때문에 이것을 하나의 사용자 정의 함수로합시다.
;; current directory open
(defun finder-current-dir-open()
  (interactive)
  (shell-command "open ."))

;; directory open
(defun finder-open(dirname)
  (interactive "DDirectoryName:")
  (shell-command (concat "open " dirname)))

;; set the keybind
(global-set-key (kbd "M-f") 'finder-current-dir-open)

이제 M-f를 입력하면 현재 디렉토리가 Finder에서 열립니다.

보충 1 : interactive란?


(defun finder-current-dir-open()
  (interactive) <---- これ!!
  (shell-command "open ."))

여기에 쓰여진 interactive의 의미에 대해 조금 보충합니다.

정의한 함수 중(이번이라면 finder-current-dir-open )에 interactive 라고 기술하는 것에 의해, M-x(그러므로, 만약 상기의 함수에 interactive 가 기술되어 있지 않으면, M-x 해도 함수를 호출할 수 없습니다)

보충 2 : interactive "D"란?


(defun finder-open(dirname)
  (interactive "DDirectoryName:") <---- これ!
  (shell-command (concat "open " dirname)))

여기서는 interactive "D"가 아니라 DDirectoryName:가 되어 있습니다만, 최초의 문자 "D"이후는 Minibuffer에 표시되는 문자이므로 무시해 문제 없습니다.



그런데, 여기서 말하는 "D"란, Directory의 D군요.
그리고 "D"가 기술되면 Emacs는 디렉토리 목록을 Minibuffer에 표시합니다.
그런 다음 열려는 디렉토리를 입력하여 Finder에서 열 수 있습니다.



그 외에도 interactive "P"라든지 interactive "n"라든지 있습니다.
자세한 내용은 여기을 참조하십시오!

참고



Emacs에서 마이너 모드를 정의하거나 M-x로 움직이는 대화식 함수를 정의해보십시오.
Emacs Interactive Codes

좋은 웹페이지 즐겨찾기