【发布时间】:2012-03-13 21:33:15
【问题描述】:
在执行:set wrap 之后,Vim 换行比窗口长。
但是是否可以让 Vim 仅在空格处换行,而不是在单词中途换行?
【问题讨论】:
标签: vim
在执行:set wrap 之后,Vim 换行比窗口长。
但是是否可以让 Vim 仅在空格处换行,而不是在单词中途换行?
【问题讨论】:
标签: vim
:help wrap
此选项更改文本的显示方式。它不会改变文本 在缓冲区中,请参阅“textwidth”。 启用时,比窗口宽度长的行将换行并 显示在下一行继续。离线时不会换行 并且只会显示部分长行。当光标在 移动到未显示的部分,屏幕将滚动 水平。 如有必要,将在单词中间换行。 见 'linebreak' 在单词边界处换行。
:help linebreak
如果在 Vim 上,会在 'breakat' 中的字符处换行,而不是 比最后一个适合屏幕的字符。
:help breakat
'breakat' 'brk'
string(默认" ^I!@*-+;:,./?")
所以,:set linebreak 它应该可以开箱即用。或者你可以限制breakat 只在空格上打断,而不是空格+标点符号。
【讨论】:
使用
:set linebreak
或简称'lbr'。它会在您的 'breakat' 选项中包含的字符上换行,默认情况下包含一个空格。
【讨论】:
打开vim,按esc回车
:set lbr
【讨论】:
以下将在不破坏任何单词的情况下进行换行并保留较短的行。
:set formatoptions+=w
:set tw=80
gggqG
要尝试格式化当前段落,请尝试以下操作:
:nnoremap Q gqip
【讨论】:
以下命令对我有用,我在工作中使用 Red Hat 7.x,在家里使用 Cygwin 3.1.4。感叹号的作用类似于非运算符。
:set wrap
:set wrap!
【讨论】: