2013-09-21 25 views
11

这听起来像一个非常基本的问题,可能有一个明显的解决方案,但我不幸找到了它。如何防止vim破坏字符串文字?

如何防止vim在字符串中间破解(输入换行符)? 我在一个字符串列表类型,它看起来像这样:

a=['a string', 'b string', 'c 
string'] 

我想换行,我不想只是VIM来包装线,并继续对下一行的编辑。我希望我的代码长度大概为80个字符,而不需要手动输入换行符。

我想要么是

  1. 不要打破字符串,即使它有一个空格

  2. 使用隐式字符串连接打破串,即关闭 串并启动在新线新的字符串

  3. 歇之前 '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”是最频繁使用的键修复损坏的一个字符串。

+4

注意:':set tw = 0'完全关闭文字换行。 –

+1

可能的重复[如何使vim不自动配置时打破字符串?](http://stackoverflow.com/questions/10615908/how-to-make-vim-not-break-strings-when-autoformating) – glts

+0

谢谢,抢。这意味着您必须手动添加换行符,不是吗?所以如果我有一行70个字符并在开头添加更多内容,我需要手动找到最接近80个字符的中断,然后按回车键。我不能使用gq,因为它有同样的问题。 – Dan

回答

0

这是我做的包裹在80个字符的所有行,而不违反任何单词,并保留较短的线路:

:set formatoptions+=w 
:set tw=80 
gggqG 

您还可以使用下面的映射到当前段落格式:

:nnoremap Q gqip 

希望它有帮助。