web-dev-qa-db-ja.com

vim windows10ネイティブパッケージマネージャーのpackpathオプションを設定

[1] vimrcの「packpath」オプションを使用して新しいパッケージディレクトリを作成しました。

:set packpath+=$HOME/vimlocal/pack

[2]コマンド:set packpath?を実行します。そして、ディレクトリは出力にリストされます:

packpath=

~/vimfiles,
C:\Program Files (x86)\Vim/vimfiles,
C:\Program Files (x86)\Vim\vim81,
C:\Program Files (x86)\Vim/vimfiles/after,
~/vimfiles/after,
~/vimlocal/pack

しかし、ディレクトリ内のプラグイン(colorschemes)はどれも機能しません。ディレクトリ構造は次のとおりです。

~/vimlocal/pack/colors/start/color1
~/vimlocal/pack/colors/start/color2
~/vimlocal/pack/colors/start/color3

[3]次のコマンドを実行します。

:set rtp? 

ただし、ディレクトリは出力に表示されません。

runtimepath=

~/vimlocal,
~/vimfiles,
~\vimfiles\bundle\alduin-master,
~\vimfiles\bundle\color-plugins,
~\vimfiles\bundle\ctrlp.vim,
~\vimfiles\bundle\dbext.vim,
~\vimfiles\bundle\goyo.vim,
~\vimfiles\bundle\hexHighlight.vim-master,
~\vimfiles\bundle\limelight.vim,
~\vimfiles\bundle\manpageview,
~\vimfiles\bundle\markdown-preview.nvim-master,
~\vimfiles\bundle\supertab,
~\vimfiles\bundle\tabular,
~\vimfiles\bundle\ultisnips,
~\vimfiles\bundle\utl.vim,
~\vimfiles\bundle\vim-colorschemes,
~\vimfiles\bundle\vim-HiLinkTrace,
~\vimfiles\bundle\vim-markdown-master,
~\vimfiles\bundle\vim-zenroom2,
~\vimfiles\bundle\vimoutliner,
~\vimfiles\bundle\vimtweak-master,
C:\Program Files (x86)\Vim/vimfiles,
C:\Program Files (x86)\Vim\vim81,
C:\Program Files (x86)\Vim\vim81\pack\dist\opt\matchit,
C:\Program Files (x86)\Vim/vimfiles/after,
~\vimfiles\bundle\vim-markdown-master\after,
~\vimfiles\bundle\ultisnips\after,
~\vimfiles\bundle\tabular\after,
~/vimfiles/after

注意:パス '〜\ vimfiles\bundle ....'はPathogenによって設定されます。すべてのプラグインをそこから新しいpackpathディレクトリに移行しようとしています。

[4]カラースキームファイルをパックファイルに移動すると

'C:\Program Files (x86)\Vim\vim81\pack' 

(同じディレクトリ構造で)正常に動作します(そしてruntimepathコマンドの出力に表示されます)。

私の質問は、packpathオプションを使用してvimrcで設定したディレクトリでそれらが機能しないのはなぜですか?

3
user2962912

'packpath'設定にpackコンポーネントを含めないでください。Vimがそれを追加してくれるからです。

あなたが欲しいのは単純です:

:set packpath+=$HOME/vimlocal

または、さらに良いことに、既存の~/vimfilesを使用して、プラグインを~/vimfiles/pack/colors/start/color1などに保存します。そうすれば、'packpath'に触れる必要はまったくありません。

packages のドキュメントを見ることができます。

Vimが起動すると、.vimrcを処理した後、'packpath'内のすべてのディレクトリをスキャンして、pack/*/startディレクトリの下にあるプラグインを探します。まず、これらすべてのディレクトリが'runtimepath'に追加されます。次に、すべてのプラグインがロードされます。

強調鉱山。 packはVimによって追加されたパスコンポーネントであることがわかります。したがって、'packpath'にリストされているパスに含めるべきではありません。実際、ご覧のとおり、Vimに含まれているものにはすでにpackがまったく含まれていませんが、すでに気付いているように、それらのすぐ下にあるpackディレクトリはパッケージで機能します。 。

1
filbranden