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