-
-
Save thinca/3421512 to your computer and use it in GitHub Desktop.
#!/bin/sh | |
if [ -z "$1" ]; then | |
echo Usage: $0 {config-file} | |
exit | |
fi | |
vim -N -u NONE -i NONE -V1 -e -s --cmd "source $1" --cmd NeoBundleInstall! --cmd qall! |
@if "%1" == "" ( | |
echo Usage: %0 {config-file} | |
exit | |
) | |
@vim -N -u NONE -i NONE -V1 -e -s --cmd "source %1" --cmd NeoBundleInstall! --cmd qall! |
" neobundle コマンドに渡すファイルのサンプル | |
" vimrc から source することで共通で使える | |
set runtimepath^=~/.vim/bundle/neobundle.vim | |
call neobundle#rc(expand('~/.vim/bundle')) | |
NeoBundle 'Shougo/neobundle.vim' | |
NeoBundle 'Shougo/neocomplcache' | |
NeoBundle 'Shougo/neocomplcache-snippets-complete' | |
NeoBundle 'Shougo/vimshell' | |
NeoBundle 'Shougo/vimproc', { | |
\ 'build' : { | |
\ 'windows' : 'echo "Sorry, cannot update vimproc binary file in Windows."', | |
\ 'cygwin' : 'make -f make_cygwin.mak', | |
\ 'mac' : 'make -f make_mac.mak', | |
\ 'unix' : 'make -f make_unix.mak', | |
\ }, | |
\ } | |
NeoBundle 'Shougo/vimfiler' | |
NeoBundle 'Shougo/unite.vim' | |
NeoBundle 'Shougo/vinarise' | |
" ... |
その他
- 引数に毎度 bundle ファイルを渡すの面倒。
- 各自 wrapper スクリプトを用意する、くらいしか思い付かない。
- bundle ファイルの標準推奨位置などがあれば (例: ~/.vim/bundle.vim)、それをデフォルト値にすることも可能。だが、標準の位置の存在自体が若干微妙な気もする。
- 個別に更新したい場合どうするか。
neobundle ~/.vim/bundle.vim unite.vim
とかできると嬉しいが…。- スクリプトファイルが複雑になってもいいなら頑張ればできそう。
- ただ、
.bat
もあるのであまり複雑にはしたくない。
方向性としてはありですが、まだいろいろ未完成なので標準で取り込むわけには行きません。
まずはドキュメントの用意をお願いします。READMEとdoc/neobundle.txt内で解説する必要があります。
gistで開発を進めるのは大変でしょうから、neobundleをforkしてみてはどうですか。
-e -s の際に 'verbose' を1以上にしておくと :echo などが標準エラー出力に出るのを利用して -V1 を指定しているが、これだと関係ないエラーも出てしまう。
ちゃんとやるなら、内部的にスクリプトモードなどを(変数などによって)認識して、メッセージ吐くときだけ :set verbose=1 などとする。
このあたりの実装はthincaさんの側でお願いします。
即座に終了するため、エラーが出ても確認できない。
ログをファイルに出せるようにできないか。
更新日時や更新前後のリビジョンをログに出すようにすると普段からでも有用なはず。
この実装については、neobundle本体側でやろうと思います。
ただ、どういった実装にするかは検討中です。
一番最後の出力に改行が入ってなくて気持ち悪い。
zsh とかだと最後に % とか出してくれるけど、多分 bash とかだと出力の右側にプロンプトが出ちゃう。
最後に空の :echo '' が必要?
これはthincaさんの側でお願いします。
引数に毎度 bundle ファイルを渡すの面倒。
各自 wrapper スクリプトを用意する、くらいしか思い付かない。
bundle ファイルの標準推奨位置などがあれば (例: ~/.vim/bundle.vim)、それをデフォルト値にすることも可能。だが、標準の位置の存在自体が若干微妙な気もする。
私は .vimrc をそのまま読みこませれば十分だと思います。インストールされていないスクリプトをチェックして、:finishすればよいのです。
そのあたりはdoc/neobundle.txtにサンプルがあります。
個別に更新したい場合どうするか。
neobundle ~/.vim/bundle.vim unite.vim とかできると嬉しいが…。
スクリプトファイルが複雑になってもいいなら頑張ればできそう。
ただ、.bat もあるのであまり複雑にはしたくない。
面倒くさいので、私はそこについてはノータッチです。それが面倒だから高速化などを頑張ったので。
ちなみに、Diffの部分はすでに取り込んで有ります。
Update時に、更新日時を出すようにしました。ただし、gitのみ。他のVCSはリビジョン番号しか出ません。
即座に終了するため、エラーが出ても確認できない。
ログをファイルに出せるようにできないか。
実装しました。g:neobundle_log_filename です。
問題点追記。<C-c>
などで強制終了すると Vim の Ex モードで復帰してしまう。終了するには :q
。わかっていれば対処は簡単だが結構アレ。
ちなみに更新日時というのはプラグインのリポジトリ上での更新日時ではなくってユーザが操作した日時って意味のつもりでした。この際こだわりませんが。
問題点追記。 などで強制終了すると Vim の Ex モードで復帰してしまう。終了するには :q 。わかっていれば対処は簡単だが結構アレ。
自分はtry使って対処してみました
#!/bin/bash
vim \
-N -u NONE -i NONE -V1 -e -s \
--cmd "source ~/.vimrc" \
--cmd "
try
NeoBundleInstall!
catch
qall!
endtry" \
--cmd qall!
echo ''
問題点
-e -s
の際に'verbose'
を1以上にしておくと:echo
などが標準エラー出力に出るのを利用して-V1
を指定しているが、これだと関係ないエラーも出てしまう。:set verbose=1
などとする。%
とか出してくれるけど、多分 bash とかだと出力の右側にプロンプトが出ちゃう。:echo ''
が必要?