Edited at

ChefでVimプラグインマネージャーvim-plugを設置する。

More than 3 years have passed since last update.


関連記事


vim-plugについて


クックブックの修正


  • NeoBundleからvim-plugに切り替えたので、既存レシピを修正した。

  • site-cookbooks/vim-plugin/recipes/default.rb

package "vim" do

action :install
end

directory "/home/#{node['user']}/.vim" do
owner node['user']
group node['group']
mode '0755'
action :create
end

%w(backup swap).each do |dir|
directory "/home/#{node['user']}/.vim/#{dir}" do
owner node['user']
group node['group']
mode '0755'
action :create
end
end

execute 'install vim-plug' do
user node['user']
group node['group']
cwd "/home/#{node['user']}"
environment 'HOME' => "/home/#{node['user']}"
command "curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim"
not_if { File.exists?("/home/#{node['user']}/.vim/autoload/plug.vim") }
end

%w(.vimrc_scss_indent .vimrc).each do |file|
cookbook_file "/home/#{node['user']}/#{file}" do
owner node['user']
group node['group']
mode '0644'
end
end

execute 'install vim plugin via vim-plug' do
user node['user']
group node['group']
cwd "/home/#{node['user']}"
environment 'HOME' => "/home/#{node['user']}"
command "vim -c 'set shortmess=at' +PlugInstall! +qall"
not_if { File.exists?("/home/#{node['user']}/.vim/plugged") }
end



  • 以前の記事で誤りがあった。

  • user、group、environmentを指定するとそのユーザで実行される。

  • むしろsudoでユーザを指定してコマンドを実行するとrootとvagrant(ユーザ)でコマンドが2回実行された。(ゲスト上でpsコマンドで確認)

  • colorschemeのプラグインが設置されていない状態でcolorschemeを指定するようになりエラーが発生してvimコマンドの実行が止まってしまうのが問題だった。


.vimrcの修正


追記


  • colorschemeをコメントアウトしておいたが、そのままだと手作業で修正する必要があるし、冪等性によりknife soloを実行するたびにコメントアウトされている状態に戻る。

  • Vim Pluginを設置した後に、次のリソースを追加してcolorschemeを活性化した。

... snip ...

execute 'install vim plugin via vim-plug' do
user node['user']
group node['group']
cwd "/home/#{node['user']}"
environment 'HOME' => "/home/#{node['user']}"
command "vim -c 'set shortmess=at' +PlugInstall! +qall"
not_if { File.exists?("/home/#{node['user']}/.vim/plugged") }
end

# ここが追加された部分
execute 'enable colorscheme' do
user node['user']
group node['group']
cwd "/home/#{node['user']}"
environment 'HOME' => "/home/#{node['user']}"
command "sed -i -e 's/\" colorscheme mopkai/colorscheme mopkai/' .vimrc"
end


  • supermomonga/neocomplete-rsense.vimがgithubから無くなり設置が失敗するので、コメントアウトした。


参考