3

私の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

4 に答える 4

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

Vimは、Pythonファイルを開いたときにのみこのファイルを読み取ります。

実際、私はこれをしばらくの間行うつもりでした。そして同じ理由で。

于 2012-08-27T09:31:58.293 に答える
4

~/.vim/after/ftplugin/{filetype}.vimromainlがすでに指摘しているように、ファイルタイプ固有のものはに移動する必要があります。

すべてのカスタムマッピングとコマンドをに移動し~/.vim/plugin/my{mappings,commands}.vim、ほとんどの場合、実際の設定(:setコマンド)とプラグインのカスタマイズのみをに配置しまし.vimrcた。単純なワンライナーではなく、関数に委任されていないマッピング/コマンドは、自動ロードメカニズムを使用します。これにより、起動時に読み取られるものの量が少なくなります。

TL、DR:自動ロードは素晴らしいです。すべてのプラグインがそれを使用する必要があります。

于 2012-08-27T10:02:49.580 に答える
2

自動コマンドで呼び出される関数にオプションのグループを設定するスキームを使用しています。

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に散在するよりも、ほとんどのカスタマイズを1つにまとめたいと思います。.vim

于 2012-08-27T10:12:04.217 に答える
1

少なくとも最初の2行を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コマンドの実行にそれほど時間がかかるとは思いません。

于 2012-08-27T09:23:32.177 に答える