照明高速プラグインマネージャ、Vim


谷 / Vimジェットパック


雷高速プラグインマネージャ、Vimプラグの代替


🚀 Vimジェットパック





Vim/Neovim用のライトニング高速ミニマリストプラグインマネージャー.Vimジェットパックは
vimmersの大部分のためのジェットパック.信じられないことに、それはViMRC使用より速いです
組み込みプラグインマネージャのみ.

機能

  • ライトニング高速起動
  • これは、RuntimePathの検索アルゴリズムを最適化
  • シングルファイルプラグイン
  • このソフトウェアを使用するには
  • 複数のDSL (ドメイン固有言語)
  • あなたはVimプラグ、deinに似ている好きな表記を使用することができます.Vim
    パッカーNVIMとPAQ無機材研
  • ファンシーUI (ユーザインタフェース)
  • グラフィカルインターフェイスでインストールの進行状況を見ることができます
  • pack/*/start -自由建築
  • インストールされたプラグインは、呼び出しまであなたのvimを汚染しませんjetpack# -関数
  • ベンチマーク


    簡単な場合では、Vim Jetpackは最速のプラグインマネージャです.
    各プラグインマネージャの起動時間を10回測定した.下記
    チャートは結果です.
    Jetpackは最小値の点でminpacより劣っていますが
    最低の.
    View on GitHub

    導入


    vim jetpackはvim 8/neovim用のvimプラグの近代化実装であり,deinで使用される最適化を取り入れている.Vimは、パッケージングで最速で最も軽いプラグインマネージャーです.nvimのようなコマンドセット.これは、プラグインマネージャと組み込みのプラグイン管理なしでVIMよりも高速です.言い換えると、プラグインマネージャによって実行される最適化によって保存される時間は、プラグインマネージャをロードするオーバーヘッドより大きいです.
    私は自信を持ってvimのプラグインマネージャを使用して誰にもvimの内蔵機能を持つプラグインを管理するミニマリストにそれをお勧めすることができます.

    それは最速の既存のプラグインマネージャです


    速度は重要です.Vimは、ほとんどのテキストエディタよりもはるかに高速起動しますが、それでも、起動し、頻繁にVIMを停止すると、わずかな遅延を迷惑することができます.Vimジェットパックは最速です.遅延負荷を設定せずにも十分です.これはプラグインのインストール時にプラグインのディレクトリ構造をVim Jetpackによって最適化するためです.Vim、起動時にロードされるディレクトリの数を減らすために、起動時間を減らす.
    次の表およびグラフは、適切なVIRC設定で6プラグインマネージャ(VIMプラグ、packer . nvim、dein . vim、vim jetpack、minpac、packer . nvim、paq . nvim、およびvimプラグ)の10の起動の統計結果を示しています.単位はミリ秒です.

    デイン
    ジェットパック
    ミンパック
    パッカー
    PAQ
    プラグ

    80.61
    69.93
    64.97
    75.38
    73.92
    77.63
    マックス
    - 96.02
    74.48
    81.30
    89.40
    84.95
    82.82
    メディアン
    85.26
    71.92
    72.38
    78.38
    78.16
    80.36
    平均
    86.24
    71.97
    72.48
    80.07
    78.21
    80.12
    分散
    18.09 .
    2.07
    23.99
    24.56
    10.83
    3.57
    MinPacとJetpakが他の4より明らかに速く走っているグラフから、我々はすぐにわかることができます.それで、JetpackとMinPacをテーブルを使って詳しく見てみましょう.
    MinPacはJetpackより小さい最小値とより速いスタートアップ記録を持ちます、しかし、その最大値はまた、(編集されます:私は「かなり」語を削除します).MinPacの最大値は、3つのスタートアップ(パッカー、PAQ、およびVIMプラグ)の平均値よりも遅くなり、最大値と最小値の範囲は大きくなります.最大値と最小値の分散はdeinの後で2番目に大きい.したがって、より高速に起動することがありますが、その起動速度は安定していません.
    Jetpackの最小値はMinPacの最小値ですが、その中央値と平均値はどちらの他のプラグインマネージャよりも低いです.さらに注目すべきは、Jetpackのレコードの非常に小さな分散です.Vimプラグの分散は十分小さいです、しかし、Jetpackの分散ははるかに小さいです.Jetpackは、それが安定し、常に高速起動する6つのプラグインマネージャの間で最小の分散、平均、および中央値を持っています.
    実際に、私はテストした以上のプラグインの量を使用することがあります.それから、我々はスタートアップのために40~100 msを減らすことを予想します.
    テスト済みのvimrcはリポジトリにあります.

    グラフィカルインストール進行



    プラグインマネージャが高速で記述されるとき、それは実行速度についてだけではありません.ユーザーエクスペリエンスがストレスなしで高速であることが重要です.この点では、最近の軽量プラグインマネージャは私にイライラされている.パッケージをインストールするためのコマンドを押した後、私が提示されたすべてが鈍いメッセージだった、インストールが完了するときに予測するのは困難になり、私は経験が実際の実行速度に関係なく遅いと感じた.
    Vim JetpackはVimプラグのような進行状況バーを提供することでこの問題を解決します.これにより、ユーザーは現在進行中であるかを予測することができます.

    VIMプラグとの互換性が高い


    大部分のソフトウェアは、機能を減らすことによって、スピードアップを成し遂げることができます.しかし、Vim JetpackはVimプラグに匹敵するオプションを提供する努力をします.ほとんどのVIMプラグユーザーは、単に実行することができます:s/plug/pack/g | s/Plug/Pack/g vim jetpackへの移行を完了するには.単純な文字列置換がすべてをスピードアップするのにかかるならば、遷移をしない理由がありません!
    Vim Jetpackは、Vimプラグとほとんど互換性があります.
    名称
    種類
    説明branch/ tag/ commit sring使用するリポジトリのブランチ/タグ/コミットrtp stringプラグインを含むサブディレクトリdir stringプラグインのカスタムディレクトリas stringプラグインの名前を使用するdo string or funcポストアップデートフックon string or listオンデマンド負荷:コマンド<Plug> , イベントfor string or listオンデマンド負荷:ファイルタイプfrozen boolean更新しない
    その上、Vim JetpackはVim 8/neovimパッケージ・インターフェースを提供します.
    名称
    種類
    説明opt booleanオンデマンド負荷packadd {name}

    複数のDSLを使用することができます。


    Vimを使用する多くの人々はおそらく特別です.いくつかのDSMのようなVIMプラグを好む、いくつかのDEINのようなvimscript関数を使用して最小限のDSLを好む.vim、いくつかのパッカーのようなルラの設定を好む.NVIM、およびいくつかのPAQのような設定を好む.無機材研Vim Jetpackはこれらのすべてのスタイルをサポートします.

    プラグスタイル


    call pack#begin()
    Pack 'junegunn/fzf.vim'
    Pack 'junegunn/fzf', { 'do': {-> fzf#install()}
    Pack 'neoclide/coc.nvim', { 'branch': 'release' }
    Pack 'neoclide/coc.nvim', { 'branch': 'master', 'do': 'yarn install --frozen-lockfile' }
    Pack 'vlime/vlime', { 'rtp': 'vim' }
    Pack 'dracula/vim', { 'as': 'dracula' }
    Pack 'tpope/vim-fireplace', { 'for': 'clojure' }
    call pack#end()
    

    ディイン/ミンパックスタイル


    call pack#begin()
    call pack#add('junegunn/fzf.vim')
    call pack#add('junegunn/fzf', { 'do': {-> fzf#install()} })
    call pack#add('neoclide/coc.nvim', { 'branch': 'release' })
    call pack#add('neoclide/coc.nvim', { 'branch': 'master', 'do': 'yarn install --frozen-lockfile' })
    call pack#add('vlime/vlime', { 'rtp': 'vim' })
    call pack#add('dracula/vim', { 'as': 'dracula' })
    call pack#add('tpope/vim-fireplace', { 'for': 'clojure' })
    call pack#end()
    

    パッカースタイル


    require('pack').startup(function(use)
      use 'junegunn/fzf.vim'
      use {'junegunn/fzf', run = 'call fzf#install()' }
      use {'neoclide/coc.nvim', branch = 'release'}
      use {'neoclide/coc.nvim', branch = 'master', run = 'yarn install --frozen-lockfile'}
      use {'vlime/vlime', rtp = 'vim' }
      use {'dracula/vim', as = 'dracula' }
      use {'tpope/vim-fireplace', ft = 'clojure' }
    end)
    

    PAQスタイル


    require('pack').setup {
      'junegunn/fzf.vim',
      {'junegunn/fzf', run = 'call fzf#install()' }
      {'neoclide/coc.nvim', branch = 'release'}
      {'neoclide/coc.nvim', branch = 'master', run = 'yarn install --frozen-lockfile'}
      {'vlime/vlime', rtp = 'vim'}
      {'dracula/vim', as = 'dracula'}
      {'tpope/vim-fireplace', ft = 'clojure' }
    }
    

    軽量でインストールが容易


    Vimプラグの美しさは、パッケージマネージャ自体が1つのファイルから成るということです.これにより、HTTPリクエストを使用してファイルを取得できる環境でVIMプラグインを展開できます.Vim Jetpackはスーツに従い、一つのファイルに含まれます.小さいサイズのため、Vim JetpackはVim構成ファイルの1つとして倉庫に含まれることができます.
    サイドノートとして、VMScriptは古典的なシーケンシャルインタプリタ処理を使用するので、コードの小さなサイズは、単に速度を向上させます.

    Vim


    curl -fLo ~/.vim/autoload/pack.vim --create-dirs https://raw.githubusercontent.com/tani/jetpack/master/autoload/jetpack.vim
    

    ネオビム


    curl -fLo ~/.config/nvim/autoload/pack.vim --create-dirs https://raw.githubusercontent.com/tani/jetpack/master/autoload/jetpack.vim
    

    ブートストラップ


    また、Vimプラグのように、それは単一のファイルから成りますので、自動的にそれをインストールするためにブートストラップ・プロセスを書くことは可能です.
    let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim'
    if empty(glob(data_dir . '/autoload/pack.vim'))
      silent execute '!curl -fLo '.data_dir.'/autoload/jetpack.vim --create-dirs  https://raw.githubusercontent.com/tani/vim-jetpack/master/autoload/jetpack.vim'
      autocmd VimEnter * JetpackSync | source $MYVIMRC
    endif
    

    簡単に構成し、操作する


    プラグインを使用している場合は、プラグインのインストールと更新を同時に問題はありません.したがって、Vimジェットパックを使用すると、インストール、更新、およびすべてを一度に1つのコマンドを一度に最適化することができますJetpackSync . ユーザーの設定ファイルを最新の状態に保つことができますJetpackSync (あるいは)J , 環境によって異なります.
    Vim Jetpackには2つの最適化レベルがありますg:pack#optimization . The let g:pack#optimization=0 任意の最適化を無効にします.これはVimプラグと同じ動作です.With let g:pack#optimization=1 , 最適化は、そうするのが安全であるときだけ実行されます.これはvim jetpackのデフォルト動作です.

    それはdeinより速いです。Vim?


    あなたがvimscriptについて精通しているならば、慎重にvimrc、deinを構成することができます.Vimはまだ最速です.
    あなたがVimイベントが解雇されるとき、autoloadが必要であるならば、そして、プラグインの間の依存性と装荷順序がよく維持されるならば、あなたはスタートアップでロードされるプラグインの数を最小にするためにより高度な遅れ処理を使用することができます.
    一方、dein.VIMは、高度なカスタマイズ機能を提供するために起動時に多くの処理を行います.ユーザーが単にVimプラグインを書いて、ロードしたいならば、この時にされていることの大部分は浪費されたランタイムです.
    Vim Jetpackは、Vimプラグと同等にカスタマイズ可能な特徴を減らすことによってその無駄な処理の多くをカットします.これにより、DEINより速く実行できます.Vim

    結論


    Vim Jetpackは最速で最も軽いプラグインマネージャーです.ほとんどの場合、単にそれに移行することは起動時間を大いに減らします、そして、あなたがVimプラグの空想的なインターフェースが好きでない限り、移行しない理由がありません.Vim Jetpackはあなたのvimを加速します.