Для просмотра разной внешней документации (man/perldoc/pydoc/etc.) в Vim есть множество плагинов и рецептов. Проблема в том, что одни не настраиваются на открытие окон с документацией удобным мне способом, другие не расширяются для поддержки новых источников документации, третьи глючат и написаны слишком криво чтобы их можно было относительно просто пофиксить и выслать патч автору. На днях меня эта ситуация окончательно достала, и я написал плагин viewdoc, решающий все эти проблемы.
Он прост внутри и удобен в использовании, предоставляет единый пользовательский интерфейс для работы с любой документацией (включая встренный
Скачать. Исходники и багтрекер.
Он прост внутри и удобен в использовании, предоставляет единый пользовательский интерфейс для работы с любой документацией (включая встренный
:help
), умеет определять требуемую документацию по контексту, гибко настраивается, и очень просто расширяется (внешними плагинами или прямо в ~/.vimrc) для добавления новых источников документации. Основной недостаток — тестировался только в linux, может работать в других *nix, точно не будет работать в винде.- Вы можете настроить свои кнопки/команды для доступа к документации. По умолчанию viewdoc заменит стандартные
K
и:help
плюс добавит<F1>
и команды:man
,:doc
,:perldoc
. - Вы можете настроить где (буфер/окно/таб) будет открываться документация. Новая документация может открываться либо в уже существующем окне с документацией (
K
) либо каждый раз в новом окне (<F1>
). Поддерживаются все возможные стили работы с окнами:- полноэкранный (без табов, одно окно, дополнительные файлы/документация открываются в hidden буферах);
- оконный (без табов, много окон с дополнительными файлами/документацией);
- полноэкранный с табами (много табов, в каждом одно окно, дополнительные файлы/документация открываются в новых табах);
- с табами (много табов, много окон внутри табов, дополнительные файлы/документация открываются где попало :)).
- Все виды документации (включая встроенный
:help
) выводятся одним и тем же способом. - Все виды документации (а не только
:help
) теперь поддерживают внутреннюю навигацию а-ля тэги (<C-]>
и<C-T>
плюс альтернативные<CR>
и<BS>
). - Даже закрывание буфера/окна/таба с документацией стало проще (
q
) и умнее (опциональный переход к предыдущему табу вместо следующего и выход из Vim при закрытии последнего буфера)! :) - При неоднозначном толковании умеет определять требуемую документацию по контексту (используя название подсветки синтаксиса для текущего слова и окружающие его символы).
- Пример 1: при редактировании ~/.vimrc нажали
<F1>
на слове «highlight» — нужно показать документацию на опцию "&highlight" или команду ":highglight"? - Пример 2: при редактировании perl-скрипта нажали
<F1>
на "$_[2]" — будет показана документация на переменную "@_".
- Пример 1: при редактировании ~/.vimrc нажали
- Для команд
:man
и:perldoc
реализовано полноценное автодополнение, не хуже чем по умолчанию работает для:help
. - Поддерживаемые «из коробки» виды документации:
- встроенная документация Vim
- дополнительная документация написанная в формате Vim-овского help (например: CSS2.1)
- man
- perldoc
- pydoc
- Поддержка новых видов документации легко добавляется пользователем без необходимости модифицировать код плагина.
- Можно определить несколько источников документации для одного типа файлов (напр. локальная и выкачиваемая из инета) и легко между ними переключаться.
- Может быть использован для вывода man-страниц прямо из консоли.
- Совместим с pathogen и неплохо документирован.
Скачать. Исходники и багтрекер.