2

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

set textwidth=10

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

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

当我输入这句话时,VIM 会实时自动换行并阻止我通过我设置的标记。但是,我发现自己遇到的一个常见问题是添加更多内容。我忘记了上一段中的一个词,“sentence THAT word wraps”。

所以我回去添加它。

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

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

4

2 回答 2

2

您可以使用该命令重新格式化受影响的行gq。通常,gqap(格式化段落)会使用视觉模式或动作,如果不是的话。

你也可以让 Vim 在输入的同时不断地重新格式化:set formatoptions+=a,但这对我来说从来都不是很好。

于 2013-11-02T19:32:38.953 回答
0

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

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设置的命令。

于 2013-11-02T19:49:13.080 回答