我在我的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
。
答案 0 :(得分:0)
如果临时纯文本文件遵循任何(路径和/或文件名)模式,我将在其上定义一个autocmd:
:autocmd BufNew,BufRead /tmp/tempfile*.tmp setlocal formatoptions=...
对于一般情况,很难触发FileType
事件而不是被抛出。您必须使用之后之后的另一个事件,例如:
:autocmd BufWinEnter * if empty(&l:filetype) | setlocal formatoptions=... | endif
我会选择第一种选择。