10
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

emacsにneotreeを導入してみた

Last updated at Posted at 2019-07-27

emacsにneotreeを導入してみたので紹介します。
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したときだけツリーを隠す…という動作です。

10
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?