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

时间:2018-10-26 04:09:06

标签: vim ipython syntax-highlighting

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 :(得分:0)

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

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

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

syntax match pythondocPrefix "^\a\+:"

建议不要链接到自定义颜色,而是链接到现有的高光组。 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