在执行:set wrap
命令后,Vim会将超过窗口长度的行进行换行。
但是,是否有可能让Vim只在空格处进行换行,而不是在单词中间进行换行呢?
在执行:set wrap
命令后,Vim会将超过窗口长度的行进行换行。
但是,是否有可能让Vim只在空格处进行换行,而不是在单词中间进行换行呢?
:help wrap
此选项更改文本的显示方式,而不会更改缓冲区中的文本,请参见 'textwidth'。 打开此选项时,超过窗口宽度的行将自动换行并在下一行继续显示。关闭此选项时,长行不会自动换行,只会显示部分内容。当光标移动到未显示的部分时,屏幕将水平滚动。 行将在单词中间断开,如果需要,可以查看 'linebreak' 以获取单词边界处的折行。
:help linebreak
打开此选项后,Vim 将在 'breakat' 中定义的字符处折断长行,而不是在适合屏幕的最后一个字符处折断。
:help breakat
'breakat' 'brk'
string
(默认值为" ^I!@*-+;:,./?"
)
因此,使用命令 :set linebreak
即可启用该功能。或者,您可以通过限制 breakat
仅在空格上进行折行来使用,而非包括空格和标点符号。
:set linebreak
或 'lbr'
(缩写)。
它将在包含在您的'breakat'
选项中的字符上断行,默认情况下包括空格。
:set lbr
。:set formatoptions+=w
:set tw=80
gggqG
要尝试格式化当前段落,请尝试以下操作:
:nnoremap Q gqip
:set wrap
:set wrap!