9

我希望 vim 换行,但不要在中间拆分单词。我发现了这篇文章:Gvim 中的自动换行

但这对我不起作用。我已经l启用了格式选项和换行符。

:set formatoptions?
formatoptions=lnq

如您所见,它仍然是分裂词:http: //i.imgur.com/ekJIHww.png

在查阅了相关的帮助页面后,我也尝试设置breakat\s,但这也没有用。

4

2 回答 2

15

正如您发现的那样,这是使用'linebreak'选项('wrap'打开)完成的。

如果打开,Vim 将在一个字符处换行,'breakat'而不是在适合屏幕的最后一个字符处换行。

而且由于'breakat'默认情况下包含空格和制表符以及一些标点符号,这应该按预期换行(而不是在单词中间)。我建议重置'breakat'为 Vim 默认值,以防它被插件或映射更改。

哦,不要设置'list',这些功能不会混合。

现在都在一起了:

:set nolist wrap linebreak breakat&vim
于 2013-10-27T23:03:34.583 回答
1

这取决于您是在谈论换行符(实际上是在文本中插入换行符)还是换行符,这只会影响文本在屏幕上的显示方式。我怀疑你指的是后者。

如果这是正确的,那么你想要:set list并且可能添加set list到你的 vimrc。

此外,包装显示,只是显示,而不是单词边界处的实际文本,list也会导致 Vim 显示各种“不可见”字符,如空格、制表符和(硬)换行符,根据listchars变量(见:help listchars更多) ; 如果您希望在单词边界处进行软换行而不是不可见字符,则可以将其设置为空listchars

我个人发现我有时希望启用列表,有时不启用。:set nolist将其关闭并:set list!切换。并且为了完整起见,:set list?告诉您当前是否已启用。这些都是标准的 Vim 约定。

如果输入太多,您可以在 .vimrc 中设置自定义键映射,但这是另一个问题。

于 2013-10-28T00:22:33.313 回答