ipython 输出的文件类型和 vim 语法高亮显示

filetype and vim syntax highlighting for the output of 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描述这种格式,如何设置它的语法高亮?

如果 Vim 带有语法高亮显示,那么很可能还会有 文件类型检测 ,因为这些通常会一起出现。您可以在 Internet 上搜索是否有人已经为此创建了语法并将其发布在 GitHub 存储库中的 vim.org and/or 上。

要开始开发自己的语法,请参阅 :help :syn-define and :help usr_44.txt

例如,要突出显示 Signature:File:、... 前缀,您可以使用:

syntax match pythondocPrefix "^\a\+:"

不定义自定义颜色,建议link现有高亮组; cp。 :help highlight-groups.

highlight def link pythondocPrefix Type

这只是一个开始;您可以根据需要定义任意数量的不同元素!它有助于查看现有语法脚本(在 $VIMRUNTIME/syntax/ 中)以了解它是如何完成的。对于 Signature: 之后的 Python 字符串,最好在其中包含 Python 语法;参见 :help :syn-include

您可以将所有这些命令放入一个文件 ~/.vim/syntax/pythondoc.vim:help 44.12 还有其他提示。

通常,然后您会定义一个带有检测功能的 :help new-filetype,但是由于您显然想通过自定义映射或命令触发文档查找,因此您可以直接 :setlocal syntax=pythondoc 在那个草稿中缓冲区。