73
海外Vimmerが開発した Vim pluginの紹介 VimConf 2015 2015/11/21(Sat) deris0126

Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

Embed Size (px)

Citation preview

Page 1: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

海外Vimmerが開発した

Vim pluginの紹介

VimConf 20152015/11/21(Sat)deris0126

Page 2: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

自己紹介

❖ Twitter: @deris0126

❖ Hatena: deris

❖ Github: deris

❖ 最近気になるもの: golang

Page 3: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

自己Vim紹介

❖ 私の.vimrc: 2344 line(1419)

❖ 使用Vim plugin: 139

❖ 自作Vim plugin: 19

❖ 自作でお勧め

❖ vim-rengbang, vim-shot-f

Page 4: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

海外Vimmerが開発した有名なVim plugin

Page 5: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

海外Vimmerが開発した有名なVim plugin

❖ vim-surround

❖ vim-fugitive

❖ vim-rails

❖ nerdtree

❖ syntastic

❖ tagbar

❖ ctrlp.vim

❖ vim-airline

(3000 star over) github star

(6000 star over)

(3000 star over)

(5000 star over)

(5000 star over)

(2000 star over)

(5000 star over in old repos)

(6000 star over)

Page 6: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

ということは

Page 7: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

本日紹介するのは

Page 8: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

有名な海外Vim plugin?

Page 9: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

違いまーす

Page 10: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

本日紹介するVim pluginのポイント

Page 11: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

本日紹介するVim pluginのポイント

❖ あまり知られていないVim plugin

❖ 海外のVim plugin (日本語で説明した資料がない)

❖ 私も知らなかった or 使っていなかった

❖ vimrc読書会でネタにした.vimrcにないVim pluginも!

Page 12: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

本日紹介するVim pluginのポイント

❖ 私が投稿した以下の記事に載っていない(ステマ)

❖ Vimmerなら2013年中に試しておきたい海外産Vim plugin 8選(http://deris.hatenablog.jp/entry/2013/12/15/235606)

❖ ちなみに、Google検索: deris vimmer

Page 13: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

本日紹介するVim pluginのポイント

❖ 基本的にはプログラミング言語に非依存

❖ すべての参加者の方(本当の初心者の方も)をカバーするため

Page 14: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

本日紹介するVim pluginのポイント

❖ そして。。。

数百のVim pluginから夜なべして厳選

Page 15: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

目的

Page 16: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

目的

❖ すべての参加者の方に新しいアイディアを

❖ 参加者の方のVim lifeを少しでも改善できれば

❖ 新しいVim plugin作成のインスピレーションに

Page 17: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

海外VimmerのVim plugin 10選

Page 18: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

海外VimmerのVim plugin 10選1. sideways.vim

2. targets.vim

3. vim-table-mode

4. investigate.vim

5. inline_edit.vim

6. changesPlugin

7. Recover.vim

8. BufTimer

9. YUNOcommit.vim

10. autotype.vim

Page 19: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

1. sideways.vim

Page 20: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

1. sideways.vim

❖ プログラミングの関数の引数間をカーソルジャンプ

❖ 関数の引数を、隣の引数と入れ替え

❖ 関数の引数をVimのtextobjectとして扱える

Page 21: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

1. sideways.vim

❖ デモ

Page 22: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

1. sideways.vim❖ 似ているVim plugin

❖ vim-textobj-parameter

❖ vim-exchange❖ 違い

❖ vim-textobj-parameterは関数の引数 をtextobjectとして扱うのに特化(安心のvim-textobj-user依存)

❖ vim-exchangeは指定した2つのtextobjectを入れ替えられる。関数の引数に特化したものではない

Page 23: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

2. targets.vim

Page 24: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

2. targets.vim

❖ 囲み系の便利なtextobjectを定義

❖ in) で1つ後のパーレン内、il) で1つ前のパーレン内

❖ in} in’ 、 an) も同様

❖ i{char} (i, i. i;など) iの後に指定した文字の囲み部分

❖ a{char} も同様

Page 25: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

2. targets.vim

❖ デモ

Page 26: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

2. targets.vim

❖ 似ているVim plugin

❖ vim-textobj-between❖ 違い

❖ vim-textobj-betweenはif{char}, af{char}で、{char}で囲まれた部分をtextobject化(キーマップを汚さない)

Page 27: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

3. vim-table-mode

Page 28: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

3. vim-table-mode

❖ |(bar)の入力だけでテーブルを楽に作れる

❖ :Tableizeコマンドでcsvファイルなどからテーブル変換

Page 29: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

3. vim-table-mode

❖ デモ

Page 30: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

3. vim-table-mode❖ 似ているVim plugin

❖ vim-maketable

❖ DrawIt!❖ 違い

❖ vim-maketableは:Tableizeコマンドに似てる

❖ DrawIt!は、カーソル移動で線を引ける

Page 31: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

4. investigate.vim

Page 32: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

4. investigate.vim

❖ 現在のfiletypeに応じて、Webのドキュメントページから検索できる

❖ デフォルトでいくつか用意されている

❖ Dashからも検索できる

❖ DashはAPIリファレンスから検索できるMacアプリ

Page 33: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

4. investigate.vim

❖ デモ

Page 34: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

4. investigate.vim❖ 似ているVim plugin

❖ vim-ref

❖ devdocs.vim❖ 違い

❖ vim-refはVim内のテキストで辞書やドキュメントなどを検索

❖ devdocs.vimは様々なドキュメントを1つにまとめたサイトであるDevDocsから検索

Page 35: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

5. inline_edit.vim

Page 36: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

5. inline_edit.vim

❖ 特定のfiletypeのバッファに埋め込まれた別のfiletypeのテキストを別ウィンドウで表示

Page 37: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

5. inline_edit.vim

❖ デモ

Page 38: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

5. inline_edit.vim❖ 似ているVim plugin

❖ vim-precious

❖ vim-partedit❖ 違い

❖ inline_edit.vimは埋め込みテキストを別ウィンドウ表示

❖ vim-preciousは同一ウィンドウ内で埋め込みテキスト位置でfiletypeを自動切り替えする。

❖ vim-parteditは明示的に埋め込みテキストの範囲とfiletypeなどを指定して別ウィンドウ表示

Page 39: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

6. changesPlugin

Page 40: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

6. changesPlugin

❖ 現在のバッファに対する変更箇所をVim のsignで表示

❖ 上記変更箇所間を移動(default key mapping: ]h, [h)

Page 41: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

6. changesPlugin

❖ デモ

Page 42: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

6. changesPlugin❖ 似ているVim plugin

❖ vim-gitgutter

❖ vim-signify❖ 違い

❖ changesPluginはバッファ上の変更箇所を扱う

❖ vim-gitgutterとvim-signifyはgitでの変更箇所を扱う

Page 43: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

7. Recover.vim

Page 44: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

7. Recover.vim

❖ swapファイルから復元する際、復元先とのdiffを表示

Page 45: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

7. Recover.vim

❖ デモ

Page 46: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

7. Recover.vim

❖ 似ているVim plugin

❖ 把握できていません

Page 47: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

8. BufTimer

Page 48: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

8. BufTimer

❖ バッファの編集時間を表示する

Page 49: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

8. BufTimer

❖ デモ

Page 50: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

8. BufTimer

❖ 似ているVim plugin

❖ 把握できていません

Page 51: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

9. YUNOcommit.vim

Page 52: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

9. YUNOcommit.vim

❖ コミットせずに作業していると警告してくれる

❖ Why you no commit?(Y U NO commit)

Page 53: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

9. YUNOcommit.vim

❖ デモ

Page 54: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

9. YUNOcommit.vim

❖ 似ているVim plugin

❖ 把握できていません。

Page 55: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

10. autotype.vim

Page 56: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

10. autotype.vim

❖ 映画のハッカーみたいになれる!やったー!

Page 57: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

10. autotype.vim

❖ デモ

Page 58: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

10. autotype.vim

❖ 指定したファイルの中身をバッファに自動入力

Page 59: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

10. autotype.vim❖ 似ているVim plugin

❖ Typer

❖ vim-undoreplay

❖ Replay❖ 違い

❖ Typerとautotype.vimはファイルの中身を出力する

❖ vim-undoreplayとReplayは編集操作をリプレイする

Page 60: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

終わりに

Page 61: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

終わりに

❖ 気になるVim pluginがあったら是非試してみてください

❖ 面白いVim pluginをご存知でしたら懇親会で是非!

Page 62: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

ご清聴あり…

Page 63: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

これで私の発表終わりかぁ…

Page 64: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

…But

Page 65: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

One more thing…

会場から今日一番の拍手喝采が

Page 66: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

準備中に出来た副産物

Page 67: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

準備中にできた副産物

❖ vim.orgにあがっているVim pluginを取得しRatingが10以上のものをコンソールに表示する(golang)

❖ https://gist.github.com/deris/761c309e7eabad5d8c8d

❖ vimrc読書会の1回目から176回目までで読んだvimrcからVim pluginを雑に抽出したリスト(1775個!?)

❖ https://gist.github.com/deris/ca9e3400057e7cccdc4d

Page 68: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

紹介したVim pluginのURL

Page 69: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

紹介したVim pluginの URL(1/4)❖ 自作 Vim plugin

❖ vim-rengbang (https://github.com/deris/vim-rengbang)

❖ vim-shot-f (https://github.com/deris/vim-shot-f)

❖ 海外Vimmerが作った有名な Vim plugin

❖ vim-surround (https://github.com/tpope/vim-surround)

❖ vim-fugitive (https://github.com/tpope/vim-fugitive)

❖ vim-rails (https://github.com/tpope/vim-rails)

❖ nerdtree (https://github.com/scrooloose/nerdtree)

❖ syntastic (https://github.com/scrooloose/syntastic)

❖ tagbar (https://github.com/majutsushi/tagbar)

❖ ctrlp.vim (https://github.com/ctrlpvim/ctrlp.vim)

❖ vim-airline (https://github.com/bling/vim-airline)

Page 70: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

紹介したVim pluginの URL(2/4)❖ 海外VimmerのVim plugin 10選で取り上げたVim plugin

❖ 1. sideway.vim と 似ているVim plugin

❖ sideways.vim (https://github.com/AndrewRadev/sideways.vim)

❖ vim-textobj-parameter (https://github.com/sgur/vim-textobj-parameter)

❖ vim-exchange (https://github.com/tommcdo/vim-exchange)

❖ 2. targets.vim

❖ targets.vim (https://github.com/wellle/targets.vim)

❖ vim-textobj-between (https://github.com/thinca/vim-textobj-between)

❖ 3. vim-table-mode と 似ているVim plugin

❖ vim-table-mode (https://github.com/dhruvasagar/vim-table-mode)

❖ vim-maketable (https://github.com/mattn/vim-maketable)

❖ DrawIt! (http://www.vim.org/scripts/script.php?script_id=40)

Page 71: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

紹介したVim pluginの URL(3/4)❖ 海外VimmerのVim plugin 10選で取り上げたVim plugin

❖ 4. investigate.vim と 似ているVim plugin

❖ investigate.vim (https://github.com/keith/investigate.vim)

❖ vim-ref (https://github.com/thinca/vim-ref)

❖ devdocs.vim (https://github.com/rhysd/devdocs.vim)

❖ 5. inline_edit.vim と 似ているVim plugin

❖ inline_edit.vim (https://github.com/AndrewRadev/inline_edit.vim)

❖ vim-precious (https://github.com/osyo-manga/vim-precious)

❖ vim-partedit(https://github.com/thinca/vim-partedit)

❖ 6. changesPlugin と 似ているVim plugin

❖ changesPlugin (https://github.com/chrisbra/changesPlugin)

❖ vim-gitgutter (https://github.com/airblade/vim-gitgutter)

❖ vim-signify (https://github.com/mhinz/vim-signify)

Page 72: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

紹介したVim pluginの URL(4/4)❖ 海外VimmerのVim plugin 10選で取り上げたVim plugin

❖ 7. Recover.vim

❖ Recover.vim (https://github.com/chrisbra/Recover.vim)

❖ 8. BufTimer

❖ BufTimer (https://github.com/chrisbra/BufTimer)

❖ 9. YUNOcommit.vim

❖ YUNOcommit.vim (https://github.com/esneider/YUNOcommit.vim)

❖ 10. autotype.vim と 似ているVim plugin

❖ autotype.vim (https://github.com/Rykka/autotype.vim)

❖ Typer (http://www.vim.org/scripts/script.php?script_id=5254)

❖ vim-undoreplay (https://github.com/haya14busa/vim-undoreplay)

❖ Replay (https://github.com/chrisbra/Replay)

Page 73: Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)

ご清聴ありがとうございました