2013-09-21 49 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 

希望它有幫助。