Emacs. Neotree
2022-03-23
·
2 мин. для прочтения
Плагин к Emacs для отображения дерева каталогов.
Содержание
1 Общая информация
- Neotree основан на идее NerdTree для Vim.
- Отображает дерево каталогов в боковой панели.
- Репозиторий: https://github.com/jaypei/emacs-neotree
- Wiki: https://www.emacswiki.org/emacs/NeoTree
2 Конфигурация
2.1 Темы NeoTree
- Можно изменить тему NeoTree, используя переменную
neo-theme
. - Значение по умолчанию
classic
. - Используйте
nerd
, если хотите, чтобы он больше всего походил на NERDTree в VIM. - Для настройки следует установить переменную
neo-theme
:(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 фокус переходит на текущий файл:
(setq neo-smart-open t)
2.4 Взаимодействие с projectile
- Переключение на корень проекта при открытии:
(defun neotree-project-dir () "Open NeoTree using the git root." (interactive) (let ((project-dir (projectile-project-root)) (file-name (buffer-file-name))) (neotree-toggle) (if project-dir (if (neo-global--window-exists-p) (progn (neotree-dir project-dir) (neotree-find file-name))) (message "Could not find git project root.")))) (global-set-key [f8] 'neotree-project-dir)