NeoTree 中文wiki

Emacs 的文件导航树,类似 Vim 中的 NERDTree

https://github.com/jaypei/emacs-neotree

关于

https://raw.githubusercontent.com/wiki/jaypei/emacs-neotree/imgs/neotree-1.png

安装

Clone project:

  $ cd /some/path
  $ git clone https://github.com/jaypei/emacs-neotree.git neotree

添加以下代码到 .emacs 中:

  (add-to-list 'load-path "/some/path/neotree")
  (require 'neotree)
  (global-set-key [f8] 'neotree-toggle)

打开(开关) NeoTree

  <F8>

使用方法

快捷键 (NeoTree 窗口有效)

命令(全局有效)

命令(NeoTree Buffer 有效)

Useful tips

与 Projectile 联动

当执行 projectile-switch-project (C-c p p) 时,NeoTree 会自动改变根目录。

   (setq projectile-switch-project-action 'neotree-projectile-action)

find-file-in-project

如果使用 find-file-in-project (ffip), 你可以添加下面代码到 .emacs.d, 就可以随时切换根到项目目录:

  (defun neotree-ffip-project-dir ()
    "Open NeoTree using the git root."
    (interactive)
    (let ((project-dir (ffip-project-root))
          (file-name (buffer-file-name)))
      (if project-dir
          (progn
            (neotree-dir project-dir)
            (neotree-find file-name))
        (message "Could not find git project root."))))
  
  (define-key map (kbd "C-c C-p") 'neotree-ffip-project-dir)

Use with evil mode

如果你使用 evil-mode, 默认会有键冲突。如 你不能用 q 来关掉 NeoTree.

  (add-hook 'neotree-mode-hook
            (lambda ()
              (define-key evil-normal-state-local-map (kbd "TAB") 'neotree-enter)
              (define-key evil-normal-state-local-map (kbd "SPC") 'neotree-enter)
              (define-key evil-normal-state-local-map (kbd "q") 'neotree-hide)
              (define-key evil-normal-state-local-map (kbd "RET") 'neotree-enter)))

popwin

如果你使用 popwin, 当 NeoTree 和 popwin 同时打开, 会在一旁出现另外一个新的 NeoTree buffer (#50). 可以使用下面代码解决。

  (when neo-persist-show
    (add-hook 'popwin:before-popup-hook
              (lambda () (setq neo-persist-show nil)))
    (add-hook 'popwin:after-popup-hook
              (lambda () (setq neo-persist-show t))))

ChangeLog

0.2 (2014-08-09)

0.1.5 (2014-06-05)

0.1.4 (2014-05-27)

0.1.3 (2014-04-13)

0.1.2 (2014-04-08)

0.1.1 (2014-04-06)

THANKS

因为贡献者的参与,让 NeoTree 变得越来越好用。

Todo