SlideShare a Scribd company logo
Unite with Perl script
hakobe932
1
❖ id:hakobe932/@hakobe
•本日の放送担当
•株式会社はてな
‣ アプリケーションエンジニア
‣ はてなココ
•Perl/JS/Obj-C/Java
•Scala
2
自己紹介
Vim
unite.vim
https://github.com/shougo/unite.vim
❖ 候補の一覧からアイテムを選択し
アクションを実行するための汎用的な
vimプラグイン
•主な利用方法
‣ ファイラ
‣ バッファセレクタ
5
unite.vim
fuf.vim/ku.vim などと似ている
デモ
❖ 一覧に表示するデータ(source)を
自由に定義できる
•sourceの例
‣ help: ヘルプ
‣ outline: ソースコードの構造
7
unite.vimの特徴
=> Emacsのanything.el的な物
sourceをつくって
vimを便利にしたい
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
vim script
よくわからない><
Perl でつくりたい!!
❖ コマンドの実行結果をunite.vimの
sourceとして利用できるプラグイン
•Perlでuniteのsourceが作れる!
unite-script
http://github.com/hakobe/unite-script
例
bookmark.pl
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);
}
.vimrc
nnoremap <unique> <silent> <Leader>ub 
:<C-u>Unite 
script:perl:/path/to/bookmarks.pl<CR>
Unite with script
twitter_user.pl
gmail.pl
itunes.pl
デモ
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
itunes.pl
❖ unite-script
•unite.vimのsourceをPerlで作れる
•vimスクリプトわからないぼくでも
大丈夫!
❖ いろんなsourceをPerlでつくって
vimを便利に使おう
24
まとめ

More Related Content

PDF
いい感じにグラフ描きたい
PDF
Webブラウザで使えるいろんな処理系
PPTX
node-gypを使ったネイティブモジュールの作成
PDF
"More" Introduction to Zend Tool
PDF
Sphinx/reST
PDF
asm.jsとWebAssemblyって実際なんなの?
PDF
PHPのライブラリをcomposer経由で公開した話
PDF
Perlで学ぶコルーチン
いい感じにグラフ描きたい
Webブラウザで使えるいろんな処理系
node-gypを使ったネイティブモジュールの作成
"More" Introduction to Zend Tool
Sphinx/reST
asm.jsとWebAssemblyって実際なんなの?
PHPのライブラリをcomposer経由で公開した話
Perlで学ぶコルーチン

Viewers also liked (7)

PDF
ページャ実装マニアックス
PDF
node.jsによる お手軽画像uploader実装
PDF
Enhance Anime Watching with Programming
PDF
初めてのMoose
PDF
ホームディレクトリに埋もれた便利なコードをさがせ!
PPTX
How to think like a startup
PDF
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
ページャ実装マニアックス
node.jsによる お手軽画像uploader実装
Enhance Anime Watching with Programming
初めてのMoose
ホームディレクトリに埋もれた便利なコードをさがせ!
How to think like a startup
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
Ad

Similar to Unite with script (20)

PDF
Yesod on Heroku
PDF
GitHubで見つかるFileMaker関連ソフトウェア
KEY
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
PDF
「Vimrcリーディングに役立ちそうな」vimrcの設定とplugin管理
 
PPTX
php-src の歩き方
PDF
ソフトウェア工学2023 14 ビルド
PDF
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
PDF
Unite vim
PDF
Goでかんたんソースコードの静的解析
PPTX
HTML5最新動向
PDF
OSC福岡 20111203
PDF
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
PDF
PHPの今とこれから2025 (PHP Conference Japan 2025)
PPTX
Functions
PDF
Tdd vim
PDF
kyotovim#1
PPTX
HTML5&API総まくり
PDF
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
PDF
How to run P4 BMv2
Yesod on Heroku
GitHubで見つかるFileMaker関連ソフトウェア
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
「Vimrcリーディングに役立ちそうな」vimrcの設定とplugin管理
 
php-src の歩き方
ソフトウェア工学2023 14 ビルド
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
Unite vim
Goでかんたんソースコードの静的解析
HTML5最新動向
OSC福岡 20111203
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
PHPの今とこれから2025 (PHP Conference Japan 2025)
Functions
Tdd vim
kyotovim#1
HTML5&API総まくり
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
How to run P4 BMv2
Ad

Unite with script