2

我的formatoptions套装里有这样的~/.vimrc

set formatoptions=caq1njw

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

这会导致 vim 应用包装注释段落规则,因此如果我有一些短文件路径加起来少于textwidth字符长,它会在我编辑此文件列表时合并文件路径!这将是非常糟糕的。

现在我知道了如何让 Vim 在打开不同的文件类型时应用不同的设置.vim/after/ftplugin。例如,如果我想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,是的,这是非常规的)

所以看起来捆绑的 javascript.vim 正在应用l并且r除了我.vimrccaq1njw. 没关系,我可以根据需要为 javascript 配置 vim 的行为。

但我想要的是不使用普通、正常、未检测到的文件类型文件caq1njw。并且,对于所有其他公认的文件类型使用caq1njw.

有没有办法在不添加set formatoptions=caq1njw我使用的每个文件类型的情况下做到这一点?

ftplugin/vanilla.vim基本上,只有在未检测到文件类型时才会运行某种形式。

4

1 回答 1

0

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

:autocmd BufNew,BufRead /tmp/tempfile*.tmp setlocal formatoptions=...

对于一般情况,很难在抛出的FileType事件上触发。您必须使用之后发生的另一个事件,例如:

:autocmd BufWinEnter * if empty(&l:filetype) | setlocal formatoptions=... | endif

不过,我会选择第一种选择。

于 2013-10-24T18:53:56.053 回答