有没有办法让vim在79个字符处自动换行python字符串?
我发现这个关于使用括号自动换行字符串的回答非常有用,但我想知道在Vim中有没有办法让这个过程自动化?我希望在输入字符串的时候,Vim能自动在我的字符串周围加上括号,并根据需要进行换行。对我来说,这将是一个巨大的时间节省,因为我花了很多时间手动换行长字符串。提前谢谢你。
举个例子:
我输入以下文本:
mylongervarname = "my really long string here so please wrap and quote automatically"
当我在字符串达到第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 来编写你的格式化工具。