DelimitMate.vim -- 如何在三引号内展开 return?

DelimitMate.vim -- how can I expand return inside triple quotes?

写python文档字符串时,经常需要这样做:

"""
this is a docstring
"""

在 vim 中,使用 DelimitMate.vim,我会这样做:

  1. 键入 """| 然后得到 """|"""
  2. <CR> 得到这个:

    """
    |"""
    

这不是很令人满意,因为我必须在完成字符串后再次键入 <CR>,有什么方法可以在 """|""" 中键入 <CR>得到这个:

"""
|
"""

你应该用类似的东西自己测试它:

:inoremap <expr> <cr> getline('.')[col('.')-4:col('.')+1]=='""""""' ? "<cr><esc><up>o" : "<cr>"

备注:

  • 我还没有检查它是否会在 Python
  • 中得到正确的缩进
  • 如果这仅适用于 python,请将 <buffer> 添加到映射中,并在 python ftplugin
  • 中定义它
  • 此映射不检查上下文或任何其他内容。

没仔细看文档,有这个选项:

au FileType python let b:delimitMate_expand_inside_quotes = 1

这正是我想要的。 这是我的 vimrc 如果上面的行不适合你。