Unite with script

4,142 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,142
On SlideShare
0
From Embeds
0
Number of Embeds
2,721
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Unite with script

  1. 1. Unite with Perl script hakobe932 1
  2. 2. ❖ id:hakobe932/@hakobe •本日の放送担当 •株式会社はてな ‣ アプリケーションエンジニア ‣ はてなココ •Perl/JS/Obj-C/Java •Scala 2 自己紹介
  3. 3. Vim
  4. 4. unite.vim https://github.com/shougo/unite.vim
  5. 5. ❖ 候補の一覧からアイテムを選択し アクションを実行するための汎用的な vimプラグイン •主な利用方法 ‣ ファイラ ‣ バッファセレクタ 5 unite.vim fuf.vim/ku.vim などと似ている
  6. 6. デモ
  7. 7. ❖ 一覧に表示するデータ(source)を 自由に定義できる •sourceの例 ‣ help: ヘルプ ‣ outline: ソースコードの構造 7 unite.vimの特徴 => Emacsのanything.el的な物
  8. 8. sourceをつくって vimを便利にしたい
  9. 9. function! s:source.gather_candidates(args,   if empty(s:hamburger) && empty(s:drink) | call s:get_menu() | endif   return map(copy(s:hamburger), '{          "word": v:val[0],          "source": "hamburger",          "kind": "command",          "action__command": "call unite#sources#mcdonalds#open_url(''".v:val[          }') endfunction
  10. 10. vim script よくわからない><
  11. 11. Perl でつくりたい!!
  12. 12. ❖ コマンドの実行結果をunite.vimの sourceとして利用できるプラグイン •Perlでuniteのsourceが作れる! unite-script http://github.com/hakobe/unite-script
  13. 13.
  14. 14. bookmark.pl
  15. 15. bookmark.pl my $target = 'http://b.hatena.ne.jp/hotentry.rss'; my $res = URI::Fetch->fetch( $target ); my $feed = XML::Feed->parse(($res->content)); for my $entry ($feed->entries) { say sprintf("%s,call system('open %s')", $entry->title, $entry->link); }
  16. 16. .vimrc nnoremap <unique> <silent> <Leader>ub :<C-u>Unite script:perl:/path/to/bookmarks.pl<CR>
  17. 17. twitter_user.pl
  18. 18. gmail.pl
  19. 19. itunes.pl
  20. 20. デモ
  21. 21. itunes.pl sub list { my $script = <<"SCRIPT"; tell application "iTunes" set cPlaylist to current playlist set resultString to "" repeat with i from 1 to count of tracks in cPlaylist set sName to name of track i in cPlaylist set sArtist to artist of track i in cPlaylist set sTime to time of track i in cPlaylist set resultString to resultString & sName & "t" & sArtist & "t" & sTime & "n" end repeat return resultString end tell SCRIPT
  22. 22. itunes.pl
  23. 23. ❖ unite-script •unite.vimのsourceをPerlで作れる •vimスクリプトわからないぼくでも 大丈夫! ❖ いろんなsourceをPerlでつくって vimを便利に使おう 24 まとめ

×