Emacs. Neotree

Emacs. Neotree

2022-03-23 · 2 мин. для прочтения

Плагин к Emacs для отображения дерева каталогов.

Содержание

1 Общая информация

2 Конфигурация

2.1 Темы NeoTree

  • Можно изменить тему NeoTree, используя переменную neo-theme.
  • Значение по умолчанию classic.
  • Используйте nerd, если хотите, чтобы он больше всего походил на NERDTree в VIM.
  • Для настройки следует установить переменную neo-theme:
    1(setq neo-theme 'icons)
    
Таблица 1: Параметры темы NeoTree
ПараметрОписание
classicИспользование иконок для отображения элементов
asciiИспользование символов x, - для отображения каталогов
arrowИспользование стрелок Юникод
iconsИспользование пакета all-the-icons
nerdИспользование режима отступов и стрелкок как в NERDTree

2.2 Сочетания клавиш

  • Сочетания работают только в буфере NeoTree
Таблица 2: Сочетания клавиш NeoTree
КлавишиЗначение
nследующая строка
pпредыдущая строка
SPC или RET или TABОткрыть текущий элемент, если это файл. Свернуть/развернуть текущий элемент, если это каталог
UПерейти вверх по каталогу
gОбновить
AРазвернуть/свернуть окно NeoTree
HПереключить отображение скрытых файлов
OРекурсивно открыть каталог
C-c C-nСоздайте файл или создайте каталог, если имя файла заканчивается на /
C-c C-dУдалить файл или каталог
C-c C-rПереименуйте файл или каталог
C-c C-cИзмените корневой каталог
C-c C-pСкопируйте файл или каталог

2.3 Отслеживание каталога

  • Каждый раз при открытии окна neotree фокус переходит на текущий файл:
    1(setq neo-smart-open t)
    

2.4 Взаимодействие с projectile

  • Переключение на корень проекта при открытии:
     1(defun neotree-project-dir ()
     2  "Open NeoTree using the git root."
     3  (interactive)
     4  (let ((project-dir (projectile-project-root))
     5        (file-name (buffer-file-name)))
     6    (neotree-toggle)
     7    (if project-dir
     8        (if (neo-global--window-exists-p)
     9            (progn
    10              (neotree-dir project-dir)
    11              (neotree-find file-name)))
    12      (message "Could not find git project root."))))
    13(global-set-key [f8] 'neotree-project-dir)