Unite vim

34,561 views
34,294 views

Published on

現在私が開発中のunite.vimに関する紹介です。オマケとして、今までの発表をダイジェスト形式で御届けしています。

Published in: Technology
2 Comments
76 Likes
Statistics
Notes
No Downloads
Views
Total views
34,561
On SlideShare
0
From Embeds
0
Number of Embeds
330
Actions
Shares
0
Downloads
83
Comments
2
Likes
76
Embeds 0
No embeds

No notes for slide

Unite vim

  1. 1. ゆないと! unite.vim ーすべてを破壊し、すべてを繋げー Shougo 1
  2. 2. 自己紹介 ハンドルネーム:Shougo Vim大好き 他の勉強会によく出没します 知っている人は知っている Lingrによくいます 毎日Vim Scriptを書いています 戦闘力:数万 2
  3. 3. 今までの(勉強会での) あらすじ 3
  4. 4. 伝説のVim=VM 4
  5. 5. その内容 5
  6. 6. その結果 ごらんの有様だよ! 6
  7. 7. そして迎えたx86勉強会 7
  8. 8. その内容 注:イメージです 8
  9. 9. 深まる誤解 またしても、ごらんの有様だよ! 9
  10. 10. lingrでのやりとりも…… 10
  11. 11. 変態じゃないよ! 「ボクはただ、Vim Scriptを書いていると何か興 奮することに気付いただけなんだ。変態じゃない よ。仮に変態だとしても、変態という名の紳士だ よ!」 11
  12. 12. 今日はunite.vimの紹介を します 12
  13. 13. 名前の由来 今までのインタフェースを「破壊」し、新たなインタ フェースの元にすべてを「統一」する ちなみに、某「仮面ライダー」とは何の関係もありま せん おのれunite、貴様のせいでこのVimの世界も破壊 されてしまった! 13
  14. 14. unite.vimとは? Vim Scriptで実装されたanythingプラグイン 似たようなプラグインとして、ku.vimや fuzzyfinder.vim等がある が、設計思想はかなり異なる いつの日か、すべてを統一するプラグインになる (予定) http://github.com/Shougo/unite.vim 14
  15. 15. unite.vimを作った理由 自分はVim信者なので、anything.elがVimに も欲しかった しかし、fuzzyfinder.vim, ku.vimともに開発が ストップする sourceを統合できるku.vim Ver.0.3を元 に、neouiを開発スタート だが、ku.vimの中身はよく分からない その上にInsert mode補完の限界が見えてくる もう0から自作してしまおう! 15
  16. 16. anything.elの紹介 anything.elとは、「候補を選択しアクションを実        行する」という操作を汎用的に実行するプラグイ   ン イメージとしてはファイラーに近いが、操作する ものはファイルに限定されない 候補を収集する「source」と呼ばれるものを追 加することで、何でもanything化することができ る もっと詳しい解説は、 会場にいるEmacs使いに聞こう! 16
  17. 17. anything.elの使用例 このように、「バッファ」「ファイル」「最近使用した        ファイル」を統合し、一度に検索することができ   る。 17
  18. 18. 簡単な使い方 ~/.vimにunite.vimの配布ファイルをインストールする Vimを立ち上げる :Unite buffer file file_mruを実行する 普通に使うときは専用のキーマッピングを定義する もっと詳しい解説は:help uniteで 18
  19. 19. unite.vimの優位性 Insert mode / Normal modeのどちらでも使える よりVimとの親和性の高いanythingを実現 開発が盛ん 比較的簡単にsourceを追加可能 候補をマークしてアクションの実行ができる ワイルドカードの実装 スペース区切りによる絞り込み 19
  20. 20. 注意! これからはunite.vimの思想や内部構造について の話をします しかし、unite.vimはまだ開発中なので、これらの機 能は実装されていない可能性があります 実装されていなくても泣かない unite.vimを使うときは、部屋を明るくしてモニター から30cmほど離れてください 20
  21. 21. unite.vimの設計思想 Insert modeに入って絞り込み、Normal modeで実行やactionの 選択を行う ku.vim, fuzzyfinder.vimのように、Vim組み込みの補完リストは使 用しない action, sourceは自由に追加・カスタマイズが可能 sourceにはパラメータを渡せないので、:FufFile pathみたいなこと はできない 曖昧マッチはできない。パフォーマンスの影響があるため。 sortはsourceを指定した順番で行われる。同一sourceの順序づけ はsource内で行う。この仕様はanything.elと同一。 ワイルドカードはあるが、正規表現で検索はしない。メタキャラクタに よるマッチは邪魔である。 21
  22. 22. kind buffer, file, directoryのように、候補の型による共通の操作をまとめ たもの 標準のもの以外にも、ユーザーやsourceで自由に追加可能 kindがそれぞれのactionを定義している(source側で上書きも可 能) ku.vimではsouceがkindを持っているが、unite.vimではkindを持 つのは候補(candidates)側である ディレクトリだったら絞り込み、といった設定が容易にできる ちなみに、anything.elではtypeと呼ぶ kindはku.vimの用語 22
  23. 23. source anything.elでは情報源とも呼ぶ 候補(candidates)をいろいろなところから収集するルーチンのこと sourceがなければunite.vimはゴミ 現在はbuffer, file, file_mru, register, bookmarkが実装されてい るが、ユーザーも自由にsourceを追加できる bufferはバッファリストからバッファの候補を収集する fileはglob()を使ってファイルの候補を収集する file_mruはautocmdを使って開いたファイルを記録し、候補とする registerはレジスタの値を候補とする bookmarkはブックマークしたファイル・ディレクトリを候補とする 23
  24. 24. action 選択した候補に対して行う操作のこと <Enter>を押したときにはデフォルトのactionが実行される <Tab>を押すと、そのほかのアクションも実行できる 複数選択可能にしたり、実行後すぐ終了したりといったフラグを持た せることができる 例えば、openやdeleteといったactionは複数選択可能になっている 24
  25. 25. ちなみに…… ku.vimにあったkey_tableは存在しない アクションの選択では先頭マッチによる省略と補完ができる 例:openならばoと省略ができる。   ただし、他にoで始まる候補がない場合のみ。 当初はNormal modeを主力とする予定だったが、ku.vim, fuzzyfinder.vimに慣れていたユーザーの意見により、Insert mode でもそれなりの処理ができるようになった 25
  26. 26. ちなみに…… Normal modeが主軸なので、キーマッピングは自由自在 候補のマークなど、vimfilerの影響もかなり受けている ぶっちゃけると、いつかanything.elすら越えて、独自の進化をしたい 参考:vimfiler 26
  27. 27. 今後のunite.vim そろそろsourceの仕様を固める ユーザーがカスタマイズ可能にする ヘルプの更なる充実 neocomplcacheの補完もunite.vimに統合 helpやタグから検索してジャンプ fuzzyfinder.vimの機能の取り込み 27
  28. 28. まとめ anythingインタフェースはもはやEmacsユーザー の専売特許ではありません! みなさんもunite.vimを活用して、快適な生活を送り ましょう 28
  29. 29. おまけ anything.elを勉強するには、「Emacsテクニックバ イブル」がおすすめ! この本を読んで、Vimの戦闘力を向上させましょう 29
  30. 30. ご静聴ありがとうございました 僕もまた――― Vimというエディタに踊らされただけの 犠牲者の一人に過ぎないってことさ――― 30

×