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

时间:2013-10-24 18:11:33

标签: vim

我在我的formatoptions

中设置了~/.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下,是的,这是非常规的)

因此,除了l的{​​{1}}之外,捆绑的javascript.vim似乎正在应用r.vimrc。没关系,我可以为javascript配置vim的行为但是我想要。

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

有没有办法在不向我使用的每种文件类型添加caq1njw的情况下执行此操作?

基本上只有在未检测到文件类型时才会运行某种set formatoptions=caq1njw

1 个答案:

答案 0 :(得分:0)

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

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

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

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

我会选择第一种选择。