【发布时间】:2013-09-21 07:03:48
【问题描述】:
这听起来像是一个非常基本的问题,可能有一个明显的解决方案,不幸的是我没有找到它。
如何防止 vim 在字符串中间中断(输入换行符)? 我输入一个字符串列表,它看起来像这样:
a=['a string', 'b string', 'c
string']
我喜欢换行符,我不希望 vim 只是换行并继续下一个编辑器行。我希望我的行大约 80 个字符长,而无需手动输入换行符。
我想要的是要么
不要打断任何字符串,即使它有空格
使用隐式字符串连接断开字符串,即关闭 字符串并在新行开始一个新字符串
- 在“c 字符串”之前中断
我找到的最接近的解决方案不是很有用:
Is there any way to get vim to auto wrap python strings at 79 chars?
how to configure vim to smartly wrap python strings?
Vim: Inter-String Line Breaking
目前,“J”是修复断弦最常用的键之一。
【问题讨论】:
-
注意:
:set tw=0完全关闭自动换行。 -
谢谢,罗伯。这意味着您必须手动添加换行符,不是吗?因此,如果我有 70 个字符的行并在开头添加更多字符,我需要手动找到最接近 80 个字符的断点,然后按 Enter。我不能使用 gq,因为它有同样的问题。
-
@glts:这是一个类似的问题,他问的是让自动格式化 (gq) 不破坏字符串,我希望在打字时完成格式化。他也指向了 formatexpr,但这似乎很困难,我没有找到任何解决方案。
-
@Dan
gq和打字时的格式化使用相同的底层格式化机制。不依赖外部工具,'formatexpr'确实是要走的路。正如其他人所指出的那样,写'formatexpr'很难;您可能必须自己编写。
标签: python vim line-breaks