我如何整理我的vimrc文件?

时间:2012-08-27 09:15:58

标签: vim autocmd

我的Vim配置文件越来越大(15KB +)。而且我尝试不通过在启动时获取更多(更大)文件来减慢vim的启动速度。出于同样的目的,我只使用必要的插件,并尽量减少插件的数量。

所以,在我的.vimrc文件的某个地方,我有这些行:

autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=4 softtabstop=4
autocmd FileType python setlocal textwidth=78
autocmd FileType python match ErrorMsg '\%>80v.\+'
autocmd FileType python inoremap <F5> <esc>:upd\|!python %<cr>
autocmd FileType python nnoremap <F5> :upd\|!python %<cr>
autocmd FileType python nnoremap <leader>8 :w\|call Flake8()<cr>
autocmd FileType python setlocal formatoptions-=t
autocmd BufWritePost *.py call Flake8()

现在我在前7行看到,所有行都有autocmd FileType python个共同点。所以我的想法是,如果我们设法用较少的东西替换所有这些单词,那么Vim会更快地启动。但我不知道该怎么做。

我们可以将它们分组吗?怎么样?还有什么吗?

4 个答案:

答案 0 :(得分:5)

刚刚放

setlocal expandtab shiftwidth=4 tabstop=4 softtabstop=4 textwidth=78 formatoptions-=t
match ErrorMsg '\%>80v.\+'
inoremap <F5> <esc>:upd\|!python %<cr>
nnoremap <F5> :upd\|!python %<cr>
nnoremap <leader>8 :w\|call Flake8()<cr>
~/.vim/after/ftplugin/python.vim中的

只有在打开Python文件时,Vim才会读取此文件。

实际上,我一直想这样做。出于同样的原因。

答案 1 :(得分:4)

特定于文件类型的内容应移至~/.vim/after/ftplugin/{filetype}.vim,正如romainl已经指出的那样。

我将所有自定义映射和命令移动到~/.vim/plugin/my{mappings,commands}.vim,并且大部分只将实际设置(:set命令)和插件自定义设置为.vimrc。任何不是简单的单行和委托给函数的映射/命令都使用自动加载机制。这样可以减少启动时读取的内容量。

TL,DR:Autoload很棒;所有插件都应该使用它。

答案 2 :(得分:1)

至少你可以将前两行合并到第7行

autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=4 softtabstop=4 textwidth=78 formatoptions-=t
autocmd FileType python match ErrorMsg '\%>80v.\+'
autocmd FileType python inoremap <F5> <esc>:upd\|!python %<cr>
autocmd FileType python nnoremap <F5> :upd\|!python %<cr>
autocmd FileType python nnoremap <leader>8 :w\|call Flake8()<cr>
autocmd BufWritePost *.py call Flake8()

但我无法想象你怎么能摆脱其他人。另一方面,我不认为这些autocmd命令执行时间太长。

答案 3 :(得分:1)

我使用的方案是在auto命令调用的函数中设置一组选项。

function! s:C_options()
    setlocal cinoptions={0,:1s,g1s,t0,(0,=.5s
    setlocal noautoindent
    setlocal nosmartindent
    setlocal cindent
    call s:PROG_options()
endfunction

autocmd BufRead,BufNewFile *.c call s:C_options()

这与使用文件类型非常相似,但您可以使用嵌套调用,例如在s:PROG_options()中使用常规编程选项,因此您应该能够进一步减小.vimrc的大小。

after\filetype解决方案在初始加载时可能会更有效,但我宁愿将大部分自定义放在单个.vimrc中,而不是分散在.vim目录中。