DelimitMate.vim - 如何在三重引号内扩展回报?

时间:2015-04-09 01:24:03

标签: python vim

编写python doc字符串时,通常需要这样做:

"""
this is a docstring
"""

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

  1. 输入"""|,然后获取"""|"""
  2. <CR>并获取此信息:

    """
    |"""
    
  3. 这不太令人满意,因为当我完成字符串时我必须再次输入<CR>,有没有办法可以在<CR>中输入"""|"""并获取这样:

    """
    |
    """
    

2 个答案:

答案 0 :(得分:1)

我没有仔细阅读文档,有这个选项:

au FileType python let b:delimitMate_expand_inside_quotes = 1

完全符合我的要求。 如果上述行不适合您,那么这是vimrc

答案 1 :(得分:0)

你应该自己测试一下:

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

注意:

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