如何先加载〜/ .vimrc,然后再加载另一个本地.vimrc

时间:2019-11-22 08:18:52

标签: vim vi

我想使用常规配置(颜色,行号等)加载〜/ .vimrc,然后加载本地文件中的另一个.vimrc(例如,针对python文件的特定conf)。

2 个答案:

答案 0 :(得分:2)

整理/构建一个过长的vimrc

说,您有许多自定义项和调整项,并且您想要更多的结构。对于:set:map:autocmd,您可以将它们放在~/.vim/plugin/personal_customization.vim之类的插件脚本中。对于插件自定义(例如let g:PluginName_Frobnize = 1),可能会导致执行顺序问题(除非您选择plugin开头的'runtimepath'目录或使用特殊文件名({{ 1}}),先阅读。

特定于文件类型的设置

Vim在这里已经报道过了,但是有些人不知道。 :help usr_43.txt解释了特定于文件类型的设置。

简而言之,如果只想为某些文件类型启用选项,请使用00plugin_customization.vim,并将相应的:setlocal option=value命令放入:setlocal,其中~/.vim/after/ftplugin/{filetype}.vim是实际的文件类型(例如{filetype})。 (这要求您拥有java;使用 after 目录允许您覆盖:filetype plugin on完成的任何默认文件类型设置。)

或者,您可以直接在$VIMRUNTIME/ftplugin/{filetype}.vim中定义一个:autocmd FileType {filetype} setlocal option=value,但是一旦您进行了许多自定义,这往往变得很笨拙-这可能只是将您带到这里。

文件特定的设置

要仅针对单个文件定义特殊的自定义设置,我的ModelineCommands plugin可以将modelines扩展到默认情况下可以在此处指定的内置选项之外。

要进行更广泛的自定义,最好在文件(~/.vimrc)旁边提供一个随附的Vimscript文件(例如foo.java.vim):

foo.java

或者,以下本地配置方法也可以应用于单个文件(通过打开当前文件名)。

本地/项目特定的配置

这通常以使用不同配置进行工作而不是私人物品,不同项目等形式出现。有不同的方法:

本地配置-中央配置

如果可以集中配置特定的命令/本地异常,则可以将此类autocmd放入function! s:AutoSource() let l:testedScripts = [expand('<afile>') . '.vim'] if expand('<afile>:e') !=# 'vim' " Don't source the edited Vimscript file itself. call add(l:testedScripts, expand('<afile>:r') . '.vim') endif for l:filespec in l:testedScripts if filereadable(l:filespec) execute 'source' fnameescape(l:filespec) endif endfor endfunction augroup AutoSource autocmd! BufNewFile,BufRead * nested call <SID>AutoSource() augroup END

~/.vimrc

使用:autocmd BufRead,BufNewFile /path/to/dir/* setlocal ts=4 sw=4 代替:setlocal,同样使用:set:map <buffer> ...很重要。

另一方面,如果您希望将特定配置与项目一起存储(并且不想通过 modelines 将其嵌入所有文件中),则可以使用以下两个选项:

具有内置功能的本地配置

如果您总是从项目根目录启动Vim,则内置

:command! -buffer ...

启用从当前目录读取:set exrc 文件的功能。您可以在其中放置.vimrc命令。

通过插件进行本地配置

否则,您需要插件的帮助; vim.org上有几个;我可以推荐localrc plugin(尤其是my own enhancements),它甚至允许本地文件类型特定的配置。

请注意,从文件系统读取配置具有安全隐患。您可能要:set ts=4 sw=4

答案 1 :(得分:1)

您的.vimrc中将在本地配置中加载如下行:

source ~/.vim/local.vim

例如,您可以输入特定于计算机的文件设置。

但是特定于Python的设置应输入.vim/syntax/python.vim或(更可能是).vim/after/syntax/python.vim中。您无需获取它们,只要您在.vimrc中至少有此文件,只要您打开Python文件,它们就会自动获取:

filetype plugin on

(尽管我建议您改用filetype plugin indent on。)