有没有办法让vim在79个字符处自动换行python字符串?

35 投票
1 回答
5107 浏览
提问于 2025-04-15 13:47

我发现这个关于使用括号自动换行字符串的回答非常有用,但我想知道在Vim中有没有办法让这个过程自动化?我希望在输入字符串的时候,Vim能自动在我的字符串周围加上括号,并根据需要进行换行。对我来说,这将是一个巨大的时间节省,因为我花了很多时间手动换行长字符串。提前谢谢你。

举个例子:

  1. 我输入以下文本:

    mylongervarname = "my really long string here so please wrap and quote
    automatically"
    

  2. 当我在字符串达到第80列时,Vim会自动变成这样:

    mylongervarname = ("my really long string here so please wrap and "
                       "quote automatically")
    

1 个回答

12

这更像是一个方向,而不是一个具体的解决方案。

可以使用 'formatexpr''formatprg'。当一行文字超过了 'textwidth' 的限制,并且符合 'formatoptions' 设定的标准时,这两个选项会被用来自动换行(如果已经设置的话)。它们的主要区别在于,'formatexpr' 是一个 vimscript 表达式,而 'formatprg' 则是通过外部程序来处理这一行文字。

所以,如果你知道有一个格式化工具可以对 Python 代码进行这样的处理,或者你愿意自己写一个,这样就可以通过这些选项来执行它。而且,由于 vim 支持 Python(可以查看 :help python),你甚至可以用 Python 来编写你的格式化工具。

撰写回答