如何撰写包含vim悬挂缩进的format =流动电子邮件?

时间:2013-04-29 15:39:56

标签: email vim formatting

有没有一种方法可以配置vim来发送包含悬挂缩进的format =流动电子邮件?

我的完整vimrc(用于测试目的)是:

set nocompatible
set fo+=awn 
set tw=72
set ai

我输入的内容如下:

 1. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam 
    posuere dui lorem, et condimentum nulla. Sed pharetra justo nec ante 
    fringilla non mattis nisi blandit. Donec molestie ligula dolor. 
    Nulla facilisi. Aliquam vel nulla elit, mollis facilisis metus. Sed 
    id eros a ante blandit convallis id sit amet elit. Duis malesuada 
    lobortis leo a placerat. Sed ut ipsum nisl. Sed pretium mauris vitae 
    velit sollicitudin iaculis.

vim为除了最后一行之外的每一行添加一个尾随空格,每组fo + = w。它还为悬挂缩进添加了空间。看起来很棒!

我的邮件客户端设置format = flowed标头。在Mail.app或mutt中查看此电子邮件的结果并不漂亮:

1. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam     posuere dui lorem, et condimentum nulla. Sed pharetra justo nec ante     fringilla non mattis nisi blandit. Donec molestie ligula dolor.     Nulla facilisi. Aliquam vel nulla elit, mollis facilisis metus. Sed     id eros a ante blandit convallis id sit amet elit. Duis malesuada     lobortis leo a placerat. Sed ut ipsum nisl. Sed pretium mauris vitae     velit sollicitudin iaculis.

段落正确包装,在某种意义上,调整大小读取器客户端会使它重新流动(这不是你在stackoverflow上看到的,但你明白了)。问题是,“Etiam”和“posuere”之间有5个空格,所有其他行已经连接在一起。

在vim中有解决方法吗?或者这是格式=流量规格的限制?别人怎么处理这个?

1 个答案:

答案 0 :(得分:0)

  

该段落正确包装,从某种意义上说,调整阅读器客户端的大小会使它回流(这不是你在stackoverflow上看到的,但你得到了这个想法)。问题是," Etiam"之间有5个空格。和" posuere"和所有其他已经连接在一起的行。

这是" format = flowed"的限制。 RFC 3676中指定的MIME参数。规范中没有任何内容允许客户端将前导空格识别为仅用于明文版邮件的装饰。

RFC第4.1节规定:

  

如果一行的第一个字符是空格,则该行已填充空格(参见第4.4节)。逻辑上,在检查行之前(即,在检查流动之前)删除此前导空格。

引用的"空间填充"来自第4.4节:

  

空格填充在生成消息时需要保护的任何行的开头添加一个空格。在接收时,如果一行的第一个字符是空格,则在逻辑上删除它。这是在测试引用行(逻辑上计算并删除任何引号)之后,以及在测试流线之前发生的。

因此,符合RFC 3676的邮件客户端会从以这样的字符开头的每一行中删除单个前导空格,然后(可选)删除单个空格字符后面的任何换行符。此过程不会触及剩余的前导空格