修复段落中的行溢出,在 VIM 中给定设置的文本宽度



假设我的.vimrc具有以下配置:

set textwidth=10

在文件中,我键入以下内容:

This is a 
sentence
word wraps
just fine
at 10 
chars.

当我输入这句话时,VIM 将实时自动换行,并阻止我传递我设置的标记。但是,我发现自己遇到的一个常见问题是添加更多内容。我忘记了上一段中的一个词,"句子那个词换行"。

所以我回去添加它。

This is a
a sentence that, suddenly, doesn't
word wrap
just fine
at 10
chars.

如果我现在想解决这个问题(让所有行都低于我设置的 10 个字符限制),我必须找到 10 个字符的位置,点击 RETURN(向下移动额外的内容),然后在下一行找到 10 个字符的位置,点击 RETURN,依此类推。

这个场景在我的程序和代码中的函数序言中出现了很多(我通常使用 73 个字符行的限制),因为我发现自己以后必须添加更多解释或内容。

有没有一种快速/简单的方法来解决这个问题?

也:

我在我的.vimrc中有一个这个来突出显示文本宽度的违规者:

" highlight anything past the 73 character limit
augroup vimrc_autocmds
    autocmd Filetype cpp autocmd BufEnter * highlight OverLength ctermbg=darkgrey guibg=#592929
    autocmd Filetype cpp autocmd BufEnter * match OverLength /%73v.*/
augroup END

也许这里我也可以添加一些东西?

您可以使用

gq 命令重新格式化受影响的行。通常,gqap(格式化段落)可以,如果没有,请使用视觉模式或动作。

您还可以在使用 :set formatoptions+=a 打字时使 Vim 不断重新格式化,但这对我来说效果不佳。

:help fo-table 报告的 Vim 手动输入:

l       Long lines are not broken in insert mode: When a line was longer than
        'textwidth' when the insert command started, Vim does not
        automatically format it.

由于您在评论中说formatoptions包含字母 l ,您应该使用以下命令关闭此选项:

:set formatoptions-=l

要修复现有行,正如 Ingo 已经建议的那样,您可以使用 gq 命令,该命令将遵循textwidth设置。

最新更新