Вызов Приложения-Обработчика Системы Для Выбранного Файла В Nerdtree В Vim

В последнее время я активно использую Vim в качестве текстового редактора и плагин NERDTree для навигации по файловой системе.

И чего мне в нем очень не хватало, так это возможности запуска стандартного приложения-обработчика выбранного в дереве файла.

Немного поискав и не найдя, я решил написать свой плагин.

Идею реализации я увидел в netrw. Я не поддерживал Win, поэтому он работает только под *nix (gnome/kde).

Для установки нужно всё это дело записать в файл (например,execute_menuitem.vim), и положить в папку ~/.

vim/nerdtree_plugin. Кстати, там уже должен быть плагин fs_menu.vim, который необходим для работы моего плагина и включен в NERDTree по умолчанию.

Как это работает: выберите файл или папку в дереве, нажмите «m», чтобы открыть меню, и «x», чтобы запустить приложение обработки.

Все.



" ============================================================================ " File: execute_menuitem.vim " Description: plugin for NERD Tree that provides an execute menu item, that " executes system default application for file or directory " ============================================================================ if exists("g:loaded_nerdtree_shell_exec_menuitem") finish endif let g:loaded_nerdtree_shell_exec_menuitem = 1 let g:haskdeinit = system("ps -e") =~ 'kdeinit' call NERDTreeAddMenuItem({ \ 'text': 'e(x)ecute', \ 'shortcut': 'x', \ 'callback': 'NERDTreeExecute' }) function! NERDTreeExecute() let treenode = g:NERDTreeFileNode.GetSelected() let path = treenode.path.str() if has("unix") && executable("gnome-open") && !g:haskdeinit exe "silent !gnome-open ".

shellescape(path,1).

" > /dev/null" let ret= v:shell_error elseif has("unix") && executable("kfmclient") && g:haskdeinit exec "silent !kfmclient exec ".

shellescape(path,1).

" > /dev/null" let ret= v:shell_error end redraw! endfunction

Теги: #vim #Чулан #nerdtree

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.