![vim softwrap 不完全是 softwrap](https://linux22.com/image/1268289/vim%20softwrap%20%E4%B8%8D%E5%AE%8C%E5%85%A8%E6%98%AF%20softwrap.png)
因此我在我的 vim 中有以下设置:
set wrap linebreak textwidth=78
当您输入超过 78 个字符时,该功能会换行,但是!如果您尝试在行的中间进行更改,该功能似乎不再起作用,行不会正确换行,因此行中放置了超过 78 个字符....
所以我想知道..你是做什么的?
答案1
你混淆了以下概念包装和格式化,因为这些概念被 Vim 所使用。包装指长度超出屏幕宽度的线条的显示。格式化指通过插入和删除换行符来断开和连接行,通常使得所有行的长度都为“文本宽度”或更小。
'wrap' 和 'linebreak' 选项会影响行的显示长度。它们不会影响行的内容。它们会影响行在行的右边缘的换行方式。屏幕;它们的行为不受‘textwidth’的影响。
'textwidth' 选项会影响在将文本添加到行中时通过添加换行符来中断行的位置。此行为还受 'wrapmargin' 和 'formatoptions' 选项的影响。此行为的详细信息在此处讨论:
:help 'formatoptions'
:help fo-table
:help 25.1
Vim 具有自动格式化功能,您可能会觉得很有用。请参阅
:help auto-format
对我来说,这太过分了。我更喜欢将所有文本保持在文本宽度内,对于代码,文本宽度为 78,对于电子邮件,文本宽度为 68。当我追加到一行并且长度超过“文本宽度”时,Vim 会自动添加换行符并将光标放在下一行。当我在行中间编辑时,格式变得很难看,但我只是等到我完成该段落或注释后,再使用命令的一些变体重新格式化整个内容gq
。