Vim
為 1 個會話提供單獨的 vimrc 文件的任何方式
我想知道,vim/vi 中是否有辦法提供不同的 vimrc 文件。我正在考慮管理 2 個不同的 vimrc 文件。對於我在版本控制中籤出/簽入的內容,我想使用不同的命令集,而不是
.vimrc
文件中的普通命令例如。
我的
.vimrc
文件包含一個命令,用於在保存文件時自動刪除任何尾隨空格。但是,我不希望為特定文件啟動此功能。那麼有什麼方法可以提供不同的 vimrc 文件(可能在命令行中,每次都將其作為參數作為 vim –vimrc=somefile file-to-open)?
請參閱手冊頁:
-u {vimrc} 使用文件 {vimrc} 中的命令進行初始化。跳過所有其他初始化。使用它來編輯特殊類型的文件。它還可以通過命名為“NONE”來跳過所有初始化。更多細節參見 vim 中的 “:help initialization”。
那麼有什麼方法可以提供不同的 vimrc 文件(可能在命令行中,每次都將其作為參數作為 vim –vimrc=somefile file-to-open)?
是的,使用
-u
參數:vim -u ~/.my-custom-vimrc
來自
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.
我的 .vimrc 文件包含一個在保存文件時自動刪除任何尾隨空格的命令。但是,我不希望為特定文件啟動此功能。
如果您需要對某些已知文件類型進行特殊處理,則有不同的解決方案;
autocmd
在你的 vimrc 中使用該命令。例如,這是我的文件類型相關配置:" 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
如果您需要將選項應用於 vim 不會自動分配特定文件類型的內容,您可以添加自己的映射(在使用
autocmd
命令之前執行此操作):" mapping of filenames to filetypes au FileReadPost,BufReadPost,BufNewFile /etc/freeradius/* setl ft=freerad au FileReadPost,BufReadPost,BufNewFile *.xt setl ft=xt