如何配置Vim的自动换行选项vimrc

11

我想配置Vim,使其始终自动在指定列数处换行,就像我提供截图的另一个编辑器一样 -

3个回答

12

使用:set wrap:set textwidth=N。要永久生效,请将wrap设置添加到vim启动文件.vimrc中。

set wrap
set textwidth=X

要将换行应用于现有文件,请移动到文件的开头(您可以使用gg来实现这一点)。然后键入gqG,将重新格式化应用于整个文件。

另外,设置边距可能会很有用:

set wrapmargin=0

很不幸,这对我来说不起作用。我尝试过在运行时使用“:”设置它们,也尝试过在vimrc中只使用“set wrap”等方式。 - Shane Thornton
修改后的解决方案 - 这有帮助吗? - suspectus
它并不总是自动换行,但如果你使用“ggqG”,它会这样做,这只是一次性的。我正在寻找一些可以自动且持久地完成这个任务的东西。 - Shane Thornton

6
如果你想要硬换行,也就是通过插入换行符重构文本的话,那么 'textwidth' 设置(如 suspectus 的回答所述)是关键。你需要重新格式化现有文本,例如通过 gq 命令。
对于软换行,也就是长行看起来被编辑器窗口分隔开的情况,:set wrap 命令将始终填充整个可用窗口空间;你无法限制它占用更少的空间。要么调整 Vim 窗口大小,要么在右侧添加一个填充缓冲区,以限制当前窗口的可用空间。对于后者,我的 LimitWindowSize 插件 可能会有所帮助。

2
根据第二个截图,您似乎想要软换行。 这个答案 提供了一种实现软换行效果的方法。
相对于我提到的那个解决方案,我进行了一些概括,但基本上
  1. 使用:set nuw来查看行号占用了多少列,我们称之为nuw
  2. 然后使用:set columns=x,其中x =(您想要的列数 + nuw)。
请注意,columns会在调整窗口大小时自动重置为窗口宽度,因此此手动设置不是持久的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接