我想知道,vim/vi 中是否有办法提供不同的 vimrc 文件。我正在考虑管理 2 个不同的 vimrc 文件。对于我在版本控制中签出/签入的内容,我想使用不同的命令集,而不是.vimrc文件中的普通命令
例如。
我的.vimrc文件包含一个命令,用于在保存文件时自动删除任何尾随空格。但是,我不希望为特定文件激活此功能。
那么有什么方法可以提供不同的 vimrc 文件(可能在命令行中,每次都将它作为参数作为 vim --vimrc=somefile file-to-open)?
cha*_*aos 13
请参阅联机帮助页:
-u {vimrc} 使用文件 {vimrc} 中的命令进行初始化。跳过所有其他初始化。使用它来编辑一种特殊类型的文件。它还可用于通过指定名称“NONE”来跳过所有初始化。更多细节参见 vim 中的 ":help 初始化"。
Mar*_*ich 12
那么有什么方法可以提供不同的 vimrc 文件(可能在命令行中,每次都将它作为参数作为 vim --vimrc=somefile file-to-open)?
是的,使用-u参数:
vim -u ~/.my-custom-vimrc
Run Code Online (Sandbox Code Playgroud)
来自man vim:
-u {vimrc} Use the commands in the file {vimrc} for initializations.
All the other initializations are skipped. Use this to
edit a special kind of files. It can also be used to skip
all initializations by giving the name "NONE". See ":help
initialization" within vim for more details.
Run Code Online (Sandbox Code Playgroud)
我的 .vimrc 文件包含一个命令,用于在保存文件时自动删除任何尾随空格。但是,我不希望为特定文件激活此功能。
如果您需要对某些已知文件类型进行特殊处理,则有不同的解决方案;使用autocmdvimrc 中的命令。例如,这是我的文件类型相关配置:
" Mapping of filetypes to options
au FileType freerad setl noexpandtab sts=0 sw=8
au FileType make setl noexpandtab sts=0
au FileType php let php_sql_query=1
au FileType php let php_htmlInStrings=1
au FileType python setl shiftwidth=2 expandtab
au FileType sql setl noexpandtab sts=0 sw=8
" global options I do not want any filetype to override
au FileType * setl formatoptions-=ro " don't continue comments
Run Code Online (Sandbox Code Playgroud)
如果您需要将选项应用于 vim 不会自动分配特定文件类型的内容,您可以添加自己的映射(在使用autocmd命令之前执行此操作):
" mapping of filenames to filetypes
au FileReadPost,BufReadPost,BufNewFile /etc/freeradius/* setl ft=freerad
au FileReadPost,BufReadPost,BufNewFile *.xt setl ft=xt
Run Code Online (Sandbox Code Playgroud)