如何让 Vim 在从 Mutt 打开时遵循正确的换行?

如何让 Vim 在从 Mutt 打开时遵循正确的换行?

我在 .muttrc 中使用了下面的行,编辑通常似乎有效,除了在 79 处刹车让我发疯。我无法让 Vim 停止这种行为。我根本不想要任何刹车,但我想要换行(基于终端屏幕大小)

set editor='vim + -c "set wrapmargin=0" -c "set textwidth=0" -c "set wrap"  -c "set nocp" -c "setlocal fo+=aw" -c "set nohlsearch"  -c "?^$"'

我还能做些什么让 Vim 尊重换行?我关注了其他一些 SU 帖子,但没有成功 :(

Vim 是否可能试图尊重所包含的消息?如果是这样,我该如何克服它?

谢谢

答案1

听起来你希望 Vim 在字边界处进行视觉换行,但在实际文件中将段落保留为单行。如果是这样,请删除此内容:

setlocal fo+=aw

并添加以下内容:

setlocal linebreak

另外,我想指出的是,您不需要set为每个选项设置单独的命令,只需将它们放在一起即可。例如:

set editor='vim + -c "setlocal wrapmargin=0 textwidth=0 wrap nocp linebreak nohlsearch"  -c "?^$"'

请注意,该setlocal命令的行为如同set无法在本地设置的选项一样。

答案2

正确的做法是将所有 mutt 特定选项添加到名为的文件中~/.vim/ftplugin/mail.vim,并确保:filetype plugin indent on在 .vimrc 中包含该语句。然后,Vim 将在 mutt 中编写邮件时自动使用这些设置,您无需编辑 .muttrc 来指定不同的选项。

我进一步增强并定制了它。参见这里

相关内容