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
不过,我会选择第一种选择