在任意宽度的窗口中在Vim中以80个字符进行软包装

ram*_*ion 122 vim word-wrap

我想使用Vim的软包装功能(:set wrap)将一些代码包装成80个字符,而不管我的实际窗口宽度如何.

我还没有找到办法做到这一点 - 所有柔软的包裹似乎都与窗户的宽度有关

  • textwidth并且wrapmargin都用于硬包装(它们将换行符插入文件中)
  • 垂直分割成多个窗口并使用:vertical resize 80(可能:set breakat=允许在任何字符上中断)其中一个工作(即使它有点hackish),但在使用时断开,:set number因为行数占用可变数量的列(取决于在文件长度上)这些是80的一部分.

有没有办法在vim中这样做? 据其他消息来源称,这看起来并不乐观.

现在我的近似只是/^.\{80}\zs.\+作为我的默认搜索,所以它至少突出显示.我想:syntax为它添加一个项目,但是当它与其他语法项重叠时就破坏了,所以我放弃了这个想法.

Bri*_*per 34

你可以

  • 通过:set numberwidth=6和设置行号列的最小宽度
  • 然后你可以用:set columns=86(或用鼠标)调整窗口大小到合适的大小.

如果你编辑一个包含一百万行的文件,你可能会有麻烦,但这不太可能.你也是这样浪费6列屏幕空间.所以仍然存在各种问题.

你可以:match在这里这里说的那样突出显示第80列.

除此之外,我无法看到任何方法来做到这一点.看起来它虽然是一个很好的功能.

  • 这是正确的答案,因为它确认你不能这样做。而且我确信我不是唯一不想为此调整终端窗口大小的人。我想要更多的宽度用于非 vim 用途。 (2认同)

小智 17

试试这个:

set columns=80
autocmd VimResized * if (&columns > 80) | set columns=80 | endif
set wrap
set linebreak
set showbreak=+++
Run Code Online (Sandbox Code Playgroud)

if (&columns > 80) |如果您总是想要80列,则可以删除它.


ftv*_*tvs 16

我没有软包装的解决方案,但是对于标记列,从Vim 7.3(2010-08-15发布):set colorcolumn=80将突出显示第80列.颜色将取决于您的语法文件.

参见Vim的80列布局的担忧,:h colorcolumn.