У Вим есть файловый менеджер netrw (на самом деле, это плагин, причем для прозрачной работы с сетевыми протоколами). Но в нем можно открыть каталог и просмотреть его в разных видах, выбрать файл и открыть его в Вим, а также выполнять некоторые файловые операции.
Всё это мы уже обсуждали. А сейчас обсудим другую полезную возможность, применимую как в режиме просмотра каталога, так и в обычном буфере, если в тексте фигурирует имя файла.
Кстати, не забываем, что открыть в Вим файл, имя которого под курсором, можно с помощью команды gf или gF.
Если файл не текстовый, то чаще нужно открыть его не в Вим. Всевозможные картинки, документы в форматах различных программ, файлы данных в двоичном формате, выполняемые файлы — всё это надо открыть специальными программами, так ведь? Можно называть это "запустить файл", по аналогии с исполняемым (который тоже, по сути, передается bash или другой оболочке, а то и какому-то интерпретатору).
Есть такая штука, как shebang: путь к интерпретатору в начале скрипта, в виде #!/usr/bin/perl. Так вот что интересно: bash, при попытке запустить такой файл (если он исполняемый) отдаст его по адресу. Все, кроме одного, интерпретаторы трактуют файл как "свой", выдавая кучу ошибок, если он не их. И только Перл делает то, что уместно: передает файл по назначению. Так что perl script.py или perl script.sh выполнятся правильно. Это Перл, а не что-нибудь там!
Просматривая каталог в Вим и желая запустить файл, нажмите x. В тексте же, поместив курсор на имя файла, нажмите gx. Вим попытается найти соответствующую программу и запустит ее.
Это полезно, если вы не на сервере в голой консоли. Да и там может пригодиться.
Кстати, действие gx можно отключить, создав переменную g:netrw_nogx. Сам факт ее существования отключает довольно опасную, на самом деле, возможность.
А как Вим определяет, кому передать файл? Вы можете прямо указать обработчик, который это умеет, в переменной g:netrw_browsex_viewer, например,
:let g:netrw_browsex_viewer= "xdg-open"
Если переменная существует и содержит специальное значение -, то будет вызвана функция Вим (которую Вы должны предварительно создать). Подробности в Справке.
Если же переменная неопределена, то Вим обращается к системе: в оболочках Gnome и KDE есть специальные обработчики, в Windows и Mac тоже.
Если же ничего нет, Вим будет искать соответствующую функцию (см. выше). Ну, а если не найдет, то ничего не произойдет. Как и в том случае, если обработчик не нашел "хозяина". Так будет, скорее всего, если вы попробуете команду на случайном слове в тексте.
Удачи, коллеги!