neobundle.vimについて+おまけ

291,116 views

Published on

ujihisa.vimで発表したスライドです。neobundle.vimの貴重な日本語資料となります。
歌はありませんが、最後に……。

Published in: Technology
1 Comment
105 Likes
Statistics
Notes
No Downloads
Views
Total views
291,116
On SlideShare
0
From Embeds
0
Number of Embeds
236,986
Actions
Shares
0
Downloads
90
Comments
1
Likes
105
Embeds 0
No embeds

No notes for slide

neobundle.vimについて+おまけ

  1. 1. neobundle.vim プログラマー達よこれがテキストエディタだ
  2. 2. 自己紹介(いつもの)● 一部には有名な Vimmer です● neocomplcache とか unite.vim とか作りました● 去年、本を書きました(共著)● Vimmer ですが、 Emacs 勉強会にも参加します● ujihisa.vim と聞いてやって来ました● 今回は歌がありません● 今回は歌がありません● 大事な事なので二度(ry
  3. 3. あなたはプラグインマネージャを 使っていますか?● プラグインが乱立する時代、様々なプラグインを使 い分けるためにプラグインマネージャは必須となり つつある● テキストエディタでなくても、Haskell, Python, Ruby, Go など、ライブラリ用のマネージャを搭載す る例は多い● 最近だと、 Emacs もプラグインマネージャを標準 搭載● Vimも負けてられない!
  4. 4. 乱立するプラグインマネージャ● Vundle● Vim-addon-manager● Vimana 乱立するプラグインマネージャに● vim-flavor 新たな光が!● Pathogen● neobundle.vim● 番外: git-submodule, VimJolts● Emacs: el-get.el, package.el, auto-install.el
  5. 5. neobundle.vim とは?● 既存のプラグインマネージャが気に入らなかったた め、最強を目指して開発されたプラグインマネー ジャ● 後発なだけに、他のプラグインマネージャを研究し て開発した● 基本的な使用方法は Vundle に類似している● プラグインの設定は Bundle → NeoBundle とす ればそのまま使える
  6. 6. よくある誤解● Q: Vundle と neobundle.vim ってほとんど同じ もの?● A: 設定に一部互換性があるだけで、全然違います
  7. 7. 既存のプラグインに対する利点● Vundle との互換性● Subversion, Mercurial 対応● プラグイン検索● unite.vim インタフェース● 非同期アップデート● リビジョンロック、ブランチロック● 遅延ロード etc...
  8. 8. neobundle.vim の簡単な使用方法 $ git clone git://github.com/Shougo/neobundle.vim.git if has(vim_starting) set runtimepath+={path to neobundle directory} neobundle.vimを 呼び出せるようにする endif call neobundle#rc(expand(~/.vim/bundle)) neobundle.vim の初期化 " My Bundles here: NeoBundle “Shougo/neobundle.vim” neobundle.vimが管理する プラグインの登録 filetype plugin indent on " required!
  9. 9. :NeoBundle コマンド ● プラグインを neobundle.vim に登録する ● プラグインがインストールされていても、このコマン ドが .vimrc になければ読み込まれない ● Vundle の :Bundle コマンドに相当 プラグインの リポジトリアドレス を指定NeoBundle Shougo/vimfiler 引数でオプション を指定できるNeoBundle github:mattn/gist-vim.gitNeoBundle git://github.com/Shougo/unite.vim.git, {directory : unite}
  10. 10. :NeoBundle コマンドの引数 ● github, vim.org に存在するプラグインのアドレス は省略できる ● もちろん省略せずにフルパスを書いても良い ● リポジトリのユーザー名があれば github の Vim plugin 同じ意味NeoBundle git://github.com/Shougo/unite.vim.gitNeoBundle Shougo/unite.vimNeoBundle CSApprox プラグイン名のみだと Vim.orgのプラグイン を表す
  11. 11. :NeoBundleInstall, :NeoBundleUpdate コマンド● 登録されたプラグインをインストール・アップデート するコマンド● :NeoBundle コマンドだけではインストールされな いことに注意する● Vundleの :BundleInstall, :BundleInstall! コマ ンドに相当● 引数を与えることで、指定したプラグインのみインス トール・アップデート可能 – プラグイン名はあいまい検索される NeoBundleInstall neocomplcache
  12. 12. プラグインのアンインストール方法● アンインストールしたいプラグインの :NeoBundle コマンドを削除かコメントアウトする● :NeoBundleClean コマンドを実行● Vundle の :BundleClean とほぼ同じ● 引数にプラグイン名を与えれば現在読み込まれて いるプラグインも削除できる(が、危険)
  13. 13. Vundle との互換性● コマンドは基本的に Bundle → NeoBundle とす れば使える● 引数も同じだが、整理・拡張されている● Vundle の場合、プラグイン名が Vundle なのにコ マンド名が Bundle なのでわかりにくい● Vundle ではわかりにくかったコマンドには別名を 用意している – 例: NeoBundleInstall! → NeoBundleUpdate● :NeoBundle コマンドの後にコメントを記述可能NeoBundleInstall neocomplcache “ Foo, Bar
  14. 14. git 以外のリポジトリに対応 ● Vundle は現在 git 専用だが、 neobundle は git 以外にも Subversion, Mercurial にも対応してい る ● しかも、他の VCS にも容易に対応可能な構造 ● ちなみに、Vundle でもよく要望されているNeoBundle http://svn.macports.org/repository/macports/contrib/mpvim/
  15. 15. リビジョンロック・ブランチロック ● 引数にリビジョン番号やブランチ名を指定すること で、特定のリビジョンや特定のブランチを使用する ことができる ● インストール・アップデートするときに切り替わる ● ちなみに、Vundle でよく要望されている機能NeoBundle Shougo/vimfiler, ver.1.50NeoBundle Shougo/vimshell,{ rev : 3787e5 }
  16. 16. アップデート時の自動ビルド ● vimproc はアップデートすると再ビルドが必要だ が、それを自動化できる ● ロードしたプラグインを解放できない Windows で は残念ながら無理NeoBundle Shougo/vimproc, { build : { cygwin : make -f make_cygwin.mak, mac : make -f make_mac.mak, unix : make -f make_unix.mak, }, }
  17. 17. pathogen 互換機能● neobundle.vim は pathogen と設定の互換性は ないが、pathogen と同様、ある特定のディレクトリ からプラグインを読み込むことができる● :NeoBundleLocal コマンドを使用する – 実はこのコマンドはシンタックスシュガー NeoBundleLocal ~/.vim/bundle
  18. 18. 依存関係の定義● プラグインごとに依存関係を定義できる● 依存関係が定義されている場合、依存関係にある プラグインもインストール・アップデートされる● すでに neobundle 内で設定されている場合は無 視される● 依存関係を定義するには、NeoBundle コマンドの オプションに depends を指定する NeoBundle Shougo/vimfiler, { depends : Shougo/unite.vim }
  19. 19. プラグインの遅延ロード● 特定の状況でしか使わないプラグインを遅延ロード できる● Vim の起動速度が早くなる● 使わないけど、削除するのが忍びない場合にも便利● :NeoBundle の代わりに :NeoBundleLazy を使用● ロードするには :NeoBundleSource コマンド NeoBundleLazy RipRip/clang_complete, Autocmd FileType cpp NeoBundleSource clang_complete
  20. 20. 非同期アップデート● neobundle.vim は vimproc を自動認識し、 vimproc がインストールされていると非同期でイン ストール・アップデートできるようになる● 基本的に、Windows はアップデートが遅いが非同 期アップデートすることで3倍くらい早くなる● これは一度体感して見るべき
  21. 21. unite.vim インタフェース● unite.vim 上でプラグインの管理やインストール・ アップデートが行える● :Unite neobundle でプラグインの管理● :Unite neobundle/install でプラグインのインス トール● :Unite neobundle/update でプラグインのアップ デート● デモ
  22. 22. プラグイン検索● unite.vim 上でプラグインの検索が行える● :Unite neobundle/search● 当然プラグイン名で絞り込みが可能● 標準で、vim.org に存在するプラグインの検索が可能● レシピを追加すれば他のプラグインも検索可能● デフォルトではプラグインの設定をヤンクする● install アクションで直接インストールも可能● デモ
  23. 23. レシピによるプラグイン定義● 標準で検索できるのは、vim.org に存在するプラグイ ンのみ● el-get.el のように、外部レシピを用意して検索できる● レシピは neobundle.vim の検索機能から参照可能● 標準外部レシピ(Pull request 歓迎) https://github.com/Shougo/neobundle-vim-scripts● みんなもレシピを書いて共有しよう
  24. 24. レシピの使い方● 配布されているレシピは neobundle 上で管理できる● NeoBundle Shougo/neobundle-vim-scripts と .vimrc に記述すれば OK● 正確には、 runtime オプションからたどれるディレク トリにある receipes/*.json が読み込まれる● neobundle-vim-scripts は receipes/*.json を提供 しているだけ● つまり、オレオレレシピを作成するのも簡単! 
  25. 25. レシピの書き方● receipes/*.json には :NeoBundle コマンドのオプ ション指定と同様、ディクショナリを指定する● 指定できるキーはドキュメントを参照 :help neobundle-receipe● レシピは neobundle.vim 以外でも使用できる(プラ グインが対応すれば){name : unite.vim, path : Shougo/unite.vim, description : Ultimate interface ..., author : Shougo,website:https://github.com/Shougo/unite.vim, script_type : plugin,}
  26. 26. 今後のneobundle.vim● 新機能の開発はほぼ終了している● あとはレシピの充実とメンテナンス● そろそろ vim.org に公開? – 外国人に対して知名度が無すぎる – neocomplcache は有名なのに……
  27. 27. まとめ● さぁ、みなさんも neobundle.vim を使ってみよう https://github.com/Shougo/neobundle.vim● 余談: Vim テクニックバイブルの執筆後に neobundle.vim を開発したので、Vim テクニック バイブルには neobundle.vim は載っていません● Vundle は載っています
  28. 28. おわり● と思いきや……● ここで終わらないのが私の発表
  29. 29. 最近のアニメやラノベ● ビム・アート・オンライン(通称:ビマーオンライン)● テキストエディタだけど、愛さえあれば関係ないよね!● 俺の妹は Vim script が書ける● 美夢二病だけど恋したい● Vim はじめました● 俺は .vimrc が少ない● キングビム● エディカツ!
  30. 30. 美夢二病とは?● Vim 使用から二年目移行で陥りやすい病気● 自分は Vim に選ばれた存在であり、Vim の力で 全てが解決できると思ってしまう – いわゆるエディタに関して「痛い」人(エディ痛)● 普通はすぐに治るが、重症化すると治すのは難しい – 誰とは言いませんが……
  31. 31. いわゆる美夢二病的発言例(1)● くっそ、また俺の Vim が暴れだしやがった!● ふ、Vim を使わぬものにはわからんだろう…● くっ……これが Vim の力ってやつか● 宗教は Vim だけで十分だぜ● 完全に、Vimmer として覚醒している……!● 他エディタ使いがまた近づいてきたみたいだな● はン……Vim のことを知りたいのか● ビムアイ(Vim 愛、Vim 眼)
  32. 32. いわゆる美夢二病的発言例(2)● エターナルフォースビムザード! 相手のエディタは クラッシュする● 本当に存在(あ)ったのか……「忘却の彼方へと葬 られし黒魔術(プラグイン)が……」● Vim を使うと「美夢羅(ビムラ)」という魔族の人格 が現れる● (勉強会で Vimmer を発見して)っく……美夢眼が ……共鳴している……!?
  33. 33. いわゆる美夢二病的発言例(3)● Vio「俺はテキストエディタをやめるぞ!! マック スー! 俺はテキストエディタを超越する! Vim plugin でだァーッ!」● お前は今まで書いた Vim script の行数を覚えて いるのか?● 「我が名は暗黒美夢王(ダークビムマスター)、闇の エディタに焼かれて消えろ!」
  34. 34. まとめ● みなさんも、こうならないように節度を持って Vim を使いましょう● もし、運悪く美夢二病にかかってしまったらぜひ私 に教えてください – 友達になりたがっている Vimmer がいます● 最近では、Emacs 使いに美夢二病と同じ症状が見 られる可能性について研究しています

×