Vim--打开没有文件类型的文件时如何控制formatoptions?

Vim--打开没有文件类型的文件时如何控制formatoptions?,vim,Vim,我的格式选项在我的~/.vimrc中设置如下: set formatoptions=caq1njw 有时我运行一个脚本,让我编辑一个临时纯文本文件,该文件的路径以/开头(它们是perforce文件路径) 这会导致vim应用换行注释段落规则,因此如果我有几个短文件路径,加起来长度小于textwidth个字符,它将在我编辑此文件列表时合并文件路径!这太糟糕了 现在我知道了如何使用.Vim/after/ftplugin让Vim在打开不同的文件类型时应用不同的设置。例如,如果我想要formatopti

我的
格式选项在我的
~/.vimrc
中设置如下:

set formatoptions=caq1njw
有时我运行一个脚本,让我编辑一个临时纯文本文件,该文件的路径以
/
开头(它们是perforce文件路径)

这会导致vim应用换行注释段落规则,因此如果我有几个短文件路径,加起来长度小于
textwidth
个字符,它将在我编辑此文件列表时合并文件路径!这太糟糕了

现在我知道了如何使用
.Vim/after/ftplugin
让Vim在打开不同的文件类型时应用不同的设置。例如,如果我想要
formatoptions
成为javascript文件的特定内容,我会编辑一些
ftplugin/javascript.vim
文件,如下所示:

:verbose set formatoptions
  formatoptions=a1njwcroql
        Last set from ~/bin/share/vim/vim73/ftplugin/javascript.vim
Press ENTER or type command to continue
(我的vim安装在
~/bin
下,是的,这是非常规的)

因此,除了我的
.vimrc
caq1njw
之外,捆绑的javascript.vim似乎还应用了
l
r
。这很好,我可以根据自己的需要为javascript配置vim的行为

但是我想要的是普通的、正常的、未检测到的文件类型文件不要使用
caq1njw
。对于所有其他已识别的文件类型,请使用
caq1njw

有没有一种方法可以在不向我使用的每个文件类型中添加
set-formatoptions=caq1njw
的情况下执行此操作


基本上是某种
ftplugin/vanilla.vim
,仅在未检测到文件类型时运行。

如果临时纯文本文件遵循任何(路径和/或文件名)模式,我会在该模式上定义一个autocmd:

:autocmd BufNew,BufRead /tmp/tempfile*.tmp setlocal formatoptions=...
对于一般情况,很难在抛出
FileType
事件not时触发。您必须使用之后的另一个事件,例如:

:autocmd BufWinEnter * if empty(&l:filetype) | setlocal formatoptions=... | endif
不过,我会选择第一种选择