在vim中自动换行而不插入换行符

时间:2016-04-30 03:05:04

标签: vim

如何设置vim来包装文本而不插入换行符?

基本上:

  • 我想要一个最大宽度,比如80行
  • 当我输入一个段落时,如果一个单词通过80行标记,它应该包裹整个单词(不分割单词)
  • 如果我输入的行数超过两行,它仍然应该包装
  • 如果我保存文件,除非在编辑模式下输入时明确按Enter键,否则我不应该看到任何换行符

我可以通过以下方式获得一些此行为:

:set textwidth=80
:set wrap

除非这会插入换行符,否则我不要希望它插入换行符。我已经尝试了this,但它无法正常工作。

2 个答案:

答案 0 :(得分:7)

如果你在插入模式下输入的目标是在窗口边缘自动软包装文本(仅在视觉上)

set number # (optional - will help to visually verify that it's working)
set textwidth=0
set wrapmargin=0
set wrap
set linebreak # (optional - breaks by word rather than character)

如果您的目标是在输入插入模式时,将自动硬包装文本(通过在实际文本文件中插入新行)80列

set number # (optional - will help to visually verify that it's working)
set textwidth=80
set wrapmargin=0
set formatoptions+=t
set linebreak # (optional - breaks by word rather than character)

如果您在插入模式下输入的目标是在80列自动软包装文本(仅在视觉上)

set number # (optional - will help to visually verify that it's working)
set textwidth=0
set wrapmargin=0
set wrap
set linebreak # (optional - breaks by word rather than character)
set columns=80 # <<< THIS IS THE IMPORTANT PART

后者带我进行了2-3次重要的互联网搜索会议,从这里找到(给他们一个阅读 - 写得非常好):https://agilesysadmin.net/how-to-manage-long-lines-in-vim/

答案 1 :(得分:2)

将窗口宽度减少到大约80个字符set wrapset linebreak应满足您的所有要求。

请参阅:help 'wrap':help 'linebreak'