emacs에 neotree를 도입해 보았습니다.

emacs에 neotree를 도입해 보았으므로 소개합니다.


설정


(use-package neotree
  :init
  (setq-default neo-keymap-style 'concise)
  :config
  (setq neo-smart-open t)
  (setq neo-create-file-auto-open t)
  (setq neo-theme (if (display-graphic-p) 'icons 'arrow))
  (bind-key [f8] 'neotree-toggle)
  (bind-key "RET" 'neotree-enter-hide neotree-mode-map)
  (bind-key "a" 'neotree-hidden-file-toggle neotree-mode-map)
  (bind-key "<left>" 'neotree-select-up-node neotree-mode-map)
  (bind-key "<right>" 'neotree-change-root neotree-mode-map))


;; Change neotree's font size
;; Tips from https://github.com/jaypei/emacs-neotree/issues/218
(defun neotree-text-scale ()
  "Text scale for neotree."
  (interactive)
  (text-scale-adjust 0)
  (text-scale-decrease 1)
  (message nil))
(add-hook 'neo-after-create-hook
      (lambda (_)
        (call-interactively 'neotree-text-scale)))

;; neotree enter hide
;; Tips from https://github.com/jaypei/emacs-neotree/issues/77
(defun neo-open-file-hide (full-path &optional arg)
  "Open file and hiding neotree.
The description of FULL-PATH & ARG is in `neotree-enter'."
  (neo-global--select-mru-window arg)
  (find-file full-path)
  (neotree-hide))

(defun neotree-enter-hide (&optional arg)
  "Neo-open-file-hide if file, Neo-open-dir if dir.
The description of ARG is in `neo-buffer--execute'."
  (interactive "P")
  (neo-buffer--execute arg 'neo-open-file-hide 'neo-open-dir))

아이콘 대응으로 한다



all-the-icons를 패키지 설치하고 (setq neo-theme (if (display-graphic-p) 'icons 'arrow))를 설정하는 것만으로 간단하게 실현되었습니다.

문자 크기 변경



Github의 issues 보드 설정을 그대로 포장했습니다.(text-scale-decrease 1) 의 숫자를 크게 하면 보다 축소 사이즈가 됩니다.

키 커스터마이징



neotree의 디폴트 키맵은 C-c 를 prefix 로 하고 있습니다만, (setq-default neo-keymap-style 'concise) 를 설정하면 일부의 기능이 원키 조작할 수 있게 됩니다.


key-bind
명령


C
neotree-change-root

c
neotree-create-node

+
neotree-create-node

d
neotree-delete-node

r
neotree-rename-node

e
neotree-enter


필자의 경우, dired 설정 과 조작성을 통일하기 위해서 이하의 키 바인드도 추가 설정하고 있습니다.
  • a : 숨겨진 파일 표시/숨기기를 토글
  • left : 하나의 디렉토리로 이동
  • right : 커서 위치의 디렉토리를 루트로 재 표시

  • 파일을 열 때 트리 숨기기



    neotree는 SPC 키를 누르면 커서의 파일이 다른 버퍼에 미리보기 표시됩니다. 또한 RET 키를 누르면 표시된 다른 버퍼가 활성화되고 편집 가능합니다.

    각각 구분하여 편리합니다만, RET 눌러의 경우에는 자동적으로 트리가 숨어 주는 쪽이 나는 좋아하므로, 커스터마이즈 해 보았습니다. 라고 해도 이것도 파크리입니다. 디렉터리에서 RET하면 트리를 확장하고 파일에서 RET했을 때만 트리를 숨기는 ...라는 동작입니다.

    좋은 웹페이지 즐겨찾기