Подсветка типов файлов и синтаксиса vim для вывода ipython - PullRequest
0 голосов
/ 26 октября 2018

В 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 голосов
/ 26 октября 2018

Если 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 в этом буфере очистки.

...