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

viewdoc — удобный доступ к любой документации

Время на прочтение2 мин
Количество просмотров2.3K
Для просмотра разной внешней документации (man/perldoc/pydoc/etc.) в Vim есть множество плагинов и рецептов. Проблема в том, что одни не настраиваются на открытие окон с документацией удобным мне способом, другие не расширяются для поддержки новых источников документации, третьи глючат и написаны слишком криво чтобы их можно было относительно просто пофиксить и выслать патч автору. На днях меня эта ситуация окончательно достала, и я написал плагин viewdoc, решающий все эти проблемы.

Он прост внутри и удобен в использовании, предоставляет единый пользовательский интерфейс для работы с любой документацией (включая встренный :help), умеет определять требуемую документацию по контексту, гибко настраивается, и очень просто расширяется (внешними плагинами или прямо в ~/.vimrc) для добавления новых источников документации. Основной недостаток — тестировался только в linux, может работать в других *nix, точно не будет работать в винде.

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

Скачать. Исходники и багтрекер.
Теги:
Хабы:
+15
Комментарии16

Публикации