和after/ftplugin/mail.vim

和after/ftplugin/mail.vim

每次我用 mutt 键入电子邮件时,它都会每隔 70 个字符左右插入这些换行符。我宁愿它只依靠自动换行,因为我的编辑风格(大量修改)使重新格式化变得很麻烦。有没有办法在 muttrc 中设置它?

答案1

您可以editor.muttrc选项中设置选项并包含命令行选项。命令行选项可以设置 vim 设置。例如:

set editor="vim +':set textwidth=0' +':set wrapmargin=0' +':set wrap'"

或者

# use vim, tell it to set cursor on first line of body
set editor="vim -c 'set expandtab textwidth=65 | normal }j'"

等等。参见vim 手册页以获得更多选择。

答案2

-S另一种方法是使用 vim 的cli 标志为 mutt 指定一个额外的源文件:

这是我的 .muttrc 中编辑器的值:

set editor="vim -S ~/.mutt/vimrc"

下面是我的 ~/.mutt/vimrc:

set textwidth=0
set wrapmargin=0

答案3

尝试将文本宽度设置为 0:

; ~/.vimrc
:set textwidth=0
:set wrapmargin=0

答案4

after/ftplugin/mail.vim

使用Hamish Downer 的解决方案在 Neovim 中很长一段时间后,我今天注意到在同一窗口中打开缓冲区(在我的情况下是另一个保存电子邮件地址的文件)后文本宽度会被重置。

我认为原因是/usr/share/nvim/runtime/ftplugin/mail.vim加载了默认文件类型插件,将文本宽度设置为 72:

" Part of /usr/share/nvim/runtime/ftplugin/mail.vim

" many people recommend keeping e-mail messages 72 chars wide
if &tw == 0
  setlocal tw=72
endif

set editor="vim +':set textwidth=0' +':set wrapmargin=0' +':set wrap'"为了解决这个问题,我从 muttrc 中删除了该行,并创建了一个~/.config/nvim/after/ftplugin/mail.vim仅包含此行的自定义文件类型插件:

setlocal textwidth=0

通常, 中的文件after/ftplugin/是在 中的配置之后获取的/usr/share/nvim/runtime/fpgplugin,从而有效地覆盖了它们。

我发现这种方法比该set editor=方法更简洁,结果是 Neovim 将对所有邮件类型的文件使用此配置。这使得在使用 Mutt 以外的其他客户端撰写邮件时设置一致。

另外,我现在可以在多行上进行配置并添加注释:

" Contents of ~/.config/nvim/after/ftplugin/mail.vim

setlocal textwidth=0
" Jump over first paragraph (useful when muttrc contains set edit_headers)
normal! }

相关内容