关于Vim中文本格式的问题

时间:2011-06-09 20:03:13

标签: vim text formatting

我正在使用Vim来编写不是代码的文本,只是写自由形式。为此,我希望formatoptions包含w标记,有时包含a标记。

当一行以非空白字符结尾而不是第一个空白行(即Vim默认值)时,w标志应该使它成为段落结尾。以下是帮助文档中的代码段:

w   Trailing white space indicates a paragraph continues in the next line.
    A line that ends in a non-white character ends a paragraph.

当您键入时,a标志会自动重新格式化。例如,在下面带有文本的文档中,w和一个标记行重新格式化,因为我只键入“段落中的最后一行”而不是下面。

This it the first line of the paragraph. <cr>
The text in it reformats properly as I type <cr>
up to the last line of the paragraph, which is <cr>
right after this line, that is, just below here: <cr>
This is the last line of paragraph.<cr>
This is the first line of second paragraph. <cr>
Even though there is no blank line between <cr>
it and first paragraph, any reformatting of <cr>
the first paragraph ends at the last line <cr>
of first paragraph.<cr>
<cr>
This the the first line after second paragraph<cr>

现在问我的问题: 使用aw标志,当我在第一段中键入时,重新格式化正常工作,即第二段保持不变。但有时我想使用vap选择当前段落。在我看来,设置w标志时,应该只选择第一段。但实际上在第一段中发出vap也会选择第二段,一直到<cr>的空白行,似乎忽略了w formatoptions标志。

这是预期的行为吗?我错过了什么吗?为什么vap不能仅选择我所在的段落,该段落在第一行没有尾随空格?

2 个答案:

答案 0 :(得分:2)

如果您在:h paragraph阅读帮助,则不会提及'fo'设置。所以 貌似fo设置并没有真正改变,是什么定义了一个段落。这可能是一个错误或不清楚的文档,所以你可能想在vim-dev邮件列表上讨论这个。

答案 1 :(得分:0)

:help text-objects:h paragraph您可以看到vim的一个段落在每个空行之后开始,并且也在每个段落宏中开始,由段落中的字符对指定' 选项。仅包含空格的空行也是段落边界。

格式选项中的w标志仅在您键入时自动格式化段落时有所不同:它将分割行并在不结束段落的行末尾留下空格。我想帮助文本有点令人困惑。