Vim:用逗号使行缩进长行,而不破坏引用的值?

时间:2018-07-20 12:16:49

标签: vim indentation

您的列表很长,并且希望用逗号缩进,以使值在中间不会分开,以便于阅读。

indent = ['11111_1111111111111111','11111_111111111111111111','11111_1111','11111_111111111111111','11111_1111111111111111',\ #Indentation should look something like this, preferably to width of the editor.
        '11111_111111111111111','11111_111111111111','11111_1111111111111111111111','11111_111111111111111111111111','11111_1111111111111111111111111',\
        '1111_12_11111_1111111111111111111_11111_1111111111111111','1111_12_11111_1111111111111111111_11111_111111111111111111',\
        '1111_12_11111_1111111111111111111_11111_1111','1111_12_11111_1111111111111111111_11111_111111111111111','1111_12_11111_1111111111111111111_11111_1111111111111111',\
        '1111_12_11111_1111111111111111111_11111_111111111111111','1111_12_11111_1111111111111111111_11111_111111111111','1111_12_11111_1111111111111111_11111_1111111111111111111',\
        '1111_12_11111_1111111111111111_11111_111111111111111111','1111_12_11111_1111111111111111_11111_1111','1111_12_11111_1111111111111111_11111_111111111111111',\
        '1111_12_11111_1111111111111111_11111_1111111111111111','1111_12_11111_1111111111111111_11111_111111111111111','1111_12_11111_1111111111111111_11111_111111111111',\
        '1111_13_11111_1111111111111111111_11111_1111111111111111','1111_13_11111_1111111111111111111_11111_111111111111111111','1111_13_11111_1111111111111111111_11111_1111',\
        '1111_13_11111_1111111111111111111_11111_111111111111111','1111_13_11111_1111111111111111111_11111_1111111111111111','1111_13_11111_1111111111111111111_11111_111111111111111',\
        '1111_13_11111_1111111111111111111_11111_111111111111','1111_13_11111_1111111111111111_11111_1111111111111111111','1111_13_11111_1111111111111111_11111_111111111111111111',\
        '1111_13_11111_1111111111111111_11111_1111','1111_13_11111_1111111111111111_11111_111111111111111','1111_13_11111_1111111111111111_11111_1111111111111111',\
        '1111_13_11111_1111111111111111_11111_111111111111111','1111_13_11111_1111111111111111_11111_111111111111','1111_14_11111_1111111111111111111_11111_1111111111111111',\
        '1111_14_11111_1111111111111111111_11111_111111111111111111','1111_14_11111_1111111111111111111_11111_1111','1111_14_11111_1111111111111111111_11111_111111111111111',\
        '1111_14_11111_1111111111111111111_11111_1111111111111111','1111_14_11111_1111111111111111111_11111_111111111111111','1111_14_11111_1111111111111111111_11111_111111111111',\ #HOW TO INDENT the following like the above?
        '1111_14_11111_1111111111111111_11111_1111111111111111111','1111_14_11111_1111111111111111_11111_111111111111111111','1111_14_11111_1111111111111111_11111_1111','1111_14_11111_1111111111111111_11111_111111111111111','1111_14_11111_1111111111111111_11111_1111111111111111','1111_14_11111_1111111111111111_11111_111111111111111','1111_14_11111_1111111111111111_11111_111111111111','11141_11111_111111111111111','11141_11111_111111111111111111','11141_11111_1111111111111111111','11141_11111_111111111111','11141_11111_1111111111111111','11141_11111_1111','11141_11111_111111111111111','11141_11111_1111111111111111','11141_11111_11111111_71111','11141_11111_11111111_141111','11141_11111_11111111_211111','11141_11111_11111111_11111111111111111','11141_11111_111111111111111','11141_11111_111111111111111111','11141_11111_1111111111111111111','11141_11111_111111111111','11141_11111_1111111111111111','11141_11111_1111','11141_11111_111111111111111','11141_11111_1111111111111111','11141_11111_11111111_71111','11141_11111_11111111_141111','11141_11111_11111111_211111','11141_11111_11111111_11111111111111111','11181_11111_111111111111111','11181_11111_111111111111111111','11181_11111_1111111111111111111','11181_11111_111111111111','11181_11111_1111111111111111','11181_11111_1111','11181_11111_111111111111111','11181_11111_1111111111111111','11181_11111_11111111_71111','11181_11111_11111111_141111','11181_11111_11111111_211111','11181_11111_11111111_11111111111111111','11181_11111_111111111111111','11181_11111_111111111111111111','11181_11111_1111111111111111111','11181_11111_111111111111','11181_11111_1111111111111111','11181_11111_1111','11181_11111_111111111111111','11181_11111_1111111111111111','11181_11111_11111111_71111','11181_11111_11111111_141111','11181_11111_11111111_211111','11181_11111_11111111_11111111111111111','111161_11111_111111111111111','111161_11111_111111111111111111','111161_11111_1111111111111111111','111161_11111_111111111111','111161_11111_1111111111111111','111161_11111_1111','111161_11111_111111111111111','111161_11111_1111111111111111','111161_11111_11111111_71111','111161_11111_11111111_141111','111161_11111_11111111_211111','111161_11111_11111111_11111111111111111','111161_11111_111111111111111','111161_11111_111111111111111111','111161_11111_1111111111111111111','111161_11111_111111111111','111161_11111_1111111111111111','111161_11111_1111','111161_11111_111111111111111','111161_11111_1111111111111111','111161_11111_11111111_71111','111161_11111_11111111_141111','111161_11111_11111111_211111','111161_11111_11111111_11111111111111111']

如何在Vim中的无引号逗号上缩进长行?

1 个答案:

答案 0 :(得分:1)

Vim不考虑语法。

作为解决方法,您可以:

  • 根据每个用例手动进行;例如,对于示例文本,由于根本没有空格,因此可以利用gq命令;您可以在最后一行上执行以下操作:

    :s/,/, /g
    gql
    :'[,']s/$/\\
    

    然后手动修复仍然存在问题的内容; (注意:以上代码未经严格测试,可能对您不起作用,具体取决于'textwidth''formatoptions' ...)

  • 使用外部格式化程序。我不知道您的示例文本是哪种语言(结尾的反斜杠让我想知道),但是让我们考虑一下该示例是一些python代码。
    首先安装vim-autoformat之类的插件。它将帮助您将系统中现有的外部格式化程序集成到Vim中。
    然后安装特定于语言的格式化程序。如果您使用的是python,则可能已经安装了autopep8
    如果您只想格式化文件的一部分,请将所需的部分复制到新的缓冲区中,然后运行:

    :setf python
    :set textwidth=100   " <-- set the text width as you wish
    :Autoformat
    

    您的缓冲区将以明智的方式包装。可用的选项很多,具体取决于外部格式化程序。