我希望 vim 换行,但不要在中间拆分单词。我发现了这篇文章:Gvim 中的自动换行
但这对我不起作用。我已经l
启用了格式选项和换行符。
:set formatoptions?
formatoptions=lnq
如您所见,它仍然是分裂词:http: //i.imgur.com/ekJIHww.png
在查阅了相关的帮助页面后,我也尝试设置breakat
为\s
,但这也没有用。
我希望 vim 换行,但不要在中间拆分单词。我发现了这篇文章:Gvim 中的自动换行
但这对我不起作用。我已经l
启用了格式选项和换行符。
:set formatoptions?
formatoptions=lnq
如您所见,它仍然是分裂词:http: //i.imgur.com/ekJIHww.png
在查阅了相关的帮助页面后,我也尝试设置breakat
为\s
,但这也没有用。
正如您发现的那样,这是使用'linebreak'
选项('wrap'
打开)完成的。
如果打开,Vim 将在一个字符处换行,
'breakat'
而不是在适合屏幕的最后一个字符处换行。
而且由于'breakat'
默认情况下包含空格和制表符以及一些标点符号,这应该按预期换行(而不是在单词中间)。我建议重置'breakat'
为 Vim 默认值,以防它被插件或映射更改。
哦,不要设置'list'
,这些功能不会混合。
现在都在一起了:
:set nolist wrap linebreak breakat&vim
这取决于您是在谈论硬换行符(实际上是在文本中插入换行符)还是软换行符,这只会影响文本在屏幕上的显示方式。我怀疑你指的是后者。
如果这是正确的,那么你想要:set list
并且可能添加set list
到你的 vimrc。
此外,包装显示,只是显示,而不是单词边界处的实际文本,list
也会导致 Vim 显示各种“不可见”字符,如空格、制表符和(硬)换行符,根据listchars
变量(见:help listchars
更多) ; 如果您希望在单词边界处进行软换行而不是不可见字符,则可以将其设置为空listchars
。
我个人发现我有时希望启用列表,有时不启用。:set nolist
将其关闭并:set list!
切换。并且为了完整起见,:set list?
告诉您当前是否已启用。这些都是标准的 Vim 约定。
如果输入太多,您可以在 .vimrc 中设置自定义键映射,但这是另一个问题。