Как стать автором
Обновить

NERDTree: добавление/удаление файлов/папок в консольном vim

Время на прочтение2 мин
Количество просмотров14K

Одной ногой на темной стороне


С недавнего времени я начал испытывать дискомфорт пользуясь vim на новом проекте. Частое добавление и удаление файлов/папок в активно развивающемся проекте стало немного утомлять. Потому будучи человеком мнительно-слабохарактерным я решил что vim не для меня и стал «поискать» счастия в стане врага…


Темная сторона


Уж простите меня emacs-сообщество, но блин какие же тренированные пальци надо возыметь что бы играть emacs-аккорды без запинки. Хоть это и не главная причина моего возвращения в стан условно «светлой» стороны силы, однако она оказалась решающей… Со слов моего манипулятора-сотрудника даже активно любящий emacs заказчик, будучи человеком весьма прагматичным, пожаловался ему мол в vim все же руки устают меньше. А там по мелочи по мелочи и накопилось мое решение вернуться…

Возвращение джедая


Поломав в обед ручную сборку vim на своем mac я всячески пытался вспомнить параметры configure которые собирают vim со всеми нужными моим плагинам опциями(камнем приткновения стала опция +clientserver нужная для ruby_debug плагина)
Таки вспомнив магический набор опций я все же собрал vim восстановив на своем mac дообеденный баланс сил… Хоть к тому времени я и был в твердом решении остаться с vim на веки моя проблема с созданием/удалением файлов/директорий не решилась. Я делал это либо пользуясь чем то вроде :!mkdir или :!touch — утомительно это было.
Вобщем долго ли коротко ли, а набрел прямо на github-овский репозиторий nerdtree.
Сразу обратила на себя внимание папка nerdtree_plugin/ — там лежат два плагина которые добавляют дополнительные менюшки в графическом режиме, а конкретно fs_menu.vim добавляет пункты меню с заветными для меня добавлением/удалением узлов. Добавляет узлы непосредственно функция NERDTreeAddNode, а удаляет соответственно NERDTreeDeleteNode…
Все просто супер, но я то по своей консервативности пользуюсь исключительно консольным vim :( Выходит меня обошла стороной эта радость :( Ан нет…

Да прибудет с нами сила


Полазив там немного по plugin/NERD_tree.vim я как-бы догадался что есть теперь там Public API в котором есть прекрасный метод NERDTreeAddKeyMap. И что же вы думаете? Этот метод позволяет творить чудеса с панелью NERDTree. На вход он принимает Dictionary вида:
{'key':'<быстрые клавиши>' ,
'quickhelpText': '<Текст для отображения в помощи панели NERDTree>',
'callback': '<имя вызываемой функции по нажатию key>'}

Что ж дальше думаю даже самый ленивый падован знает что делать
Теги:
Хабы:
Всего голосов 9: ↑7 и ↓2+5
Комментарии7

Публикации

Истории

Ближайшие события

19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн