首页 > 解决方案 > 如何让 vim 只为 `gq` 命令换行 80 个字符?

问题描述

考虑以下示例文件,其中包含正好 80 个字符的单行。

==foo     ===  ============================================================= bar

如果我在 Vim 中选择它并键入gq,它将转换执行文本换行,因为它使用 79 个字符作为阈值。

==foo     ===  =============================================================
bar

这是不可取的。我希望 vim仅在超过 80 个字符时才换行。我尝试使用这里建议的方法。

:set textwidth=80

这有一个不幸的副作用,即 Vim在我键入时自动添加换行符。

如何仅对gq命令执行 80 个字符的限制(而不是 79 个),而不是我输入时?

标签: vim

解决方案


删除t'formatoptions'/或添加l以禁用插入时包装。

'formatoptions'|fo-table|。 是控制如何和工作'formatoptions'的字符串。这封信的意思是:'textwidth'gqt

使用 textwidth 自动换行

字母l(小写 L)定义为:

插入模式下长行不中断:当插入命令开始时行长于 'textwidth' 时,Vim 不会自动格式化。

我相信删除t就足够了,但如果没有,您也可以添加l。 对于希望启用大多数行但又希望编辑器“停止弄乱我的一条故意长行”l的人特别有用。t


推荐阅读