我在 .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 来指定不同的选项。
我进一步增强并定制了它。参见这里