Подсветка синтаксиса filetype и vim для вывода ipython

В ipython я могу использовать ?, чтобы получить документ для предшествующего ему объекта, например os.path.join?<enter>. Тогда я получаю такой результат:

Signature: os.path.join(a, *p)
Docstring:
Join two or more pathname components, inserting '/' as needed.
If any component is an absolute path, all previous path components
will be discarded.  An empty last part will result in a path that
ends with a separator.
File:      ~/conda/envs/test/lib/python3.6/posixpath.py
Type:      function

Я хочу загрузить этот вывод в Vim и получить подсветку синтаксиса.

  1. Какой filetype мне установить для него?
  2. Если ни один из существующих filetype не описывает этот формат, как установить для него подсветку синтаксиса?
1
0
192
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если бы Vim поставлялся с подсветкой синтаксиса для него, скорее всего, для него также был бы определение типа файла, поскольку они обычно идут вместе. Вы можете поискать в Интернете, создал ли кто-то уже синтаксис для этого и опубликовал его в vim.org и / или в репозитории GitHub.

Чтобы начать разработку собственного синтаксиса, см. :help :syn-define и :help usr_44.txt.

Например, чтобы выделить префиксы Signature:, File:, ..., вы должны использовать:

syntax match pythondocPrefix "^\a\+:"

Вместо того, чтобы определять собственные цвета, рекомендуется связать с существующими группами выделения; ср. :help highlight-groups.

highlight def link pythondocPrefix Type

Это только начало; вы можете определить столько различных элементов, сколько захотите! Это помогает посмотреть на существующие сценарии синтаксиса (в $VIMRUNTIME/syntax/), чтобы увидеть, как это делается. Для строки Python после Signature: было бы неплохо включить туда синтаксис Python; см. :help :syn-include.

Вы бы поместили все эти команды в файл ~/.vim/syntax/pythondoc.vim. :help 44.12 имеет дополнительные подсказки.

Обычно вы затем определяете :help new-filetype с обнаружением, но, поскольку вы, очевидно, хотите запустить поиск документа с помощью настраиваемого сопоставления или команды, вы можете просто напрямую :setlocal syntax=pythondoc в этом рабочем буфере.

Возможно, кто-то уже создал этот тип файла (возможно, не с python в его имени). Но где искать доступные типы файлов и что мне искать? Возможно, уже существует более общий тип файла, который обрабатывает этот формат key: description.

doraemon 26.10.2018 10:25

Что ж, :setf <C-d> дает вам список всех типов файлов, которые у вас есть. Вы можете «опробовать» несколько многообещающих имен и проверить, как выглядит их синтаксис.

Ingo Karkat 26.10.2018 10:49

ru, не нашел ни одного, описывающего это. нужно время, чтобы внедрить новый. Спасибо

doraemon 08.11.2018 06:12

Другие вопросы по теме