Slide 1

Slide 1 text

Vim の開発環境自慢 エディタ好きは語りたい LT会 - vol.2

Slide 2

Slide 2 text

注意

Slide 3

Slide 3 text

注意 Vim 以外のエディタの話はでてこない Neovim や VSCode, Emacs など

Slide 4

Slide 4 text

注意 Vim 以外のエディタの話はでてこない Neovim や VSCode, Emacs など レガシーな環境 サポート外のプラグインも使ってる

Slide 5

Slide 5 text

注意 Vim 以外のエディタの話はでてこない Neovim や VSCode, Emacs など レガシーな環境 サポート外のプラグインも使ってる Vim についての解説・説明はない

Slide 6

Slide 6 text

自己紹介 名前:osyo Twitter : @pink_bangbi github : osyo-manga ブログ : Secret Garden(Instrumental) Rails エンジニア

Slide 7

Slide 7 text

自己紹介 名前:osyo Twitter : @pink_bangbi github : osyo-manga ブログ : Secret Garden(Instrumental) Rails エンジニア vimrc : 4000行ぐらい?

Slide 8

Slide 8 text

自己紹介 名前:osyo Twitter : @pink_bangbi github : osyo-manga ブログ : Secret Garden(Instrumental) Rails エンジニア vimrc : 4000行ぐらい? 使用 Vim プラグイン数: 174個

Slide 9

Slide 9 text

自己紹介 名前:osyo Twitter : @pink_bangbi github : osyo-manga ブログ : Secret Garden(Instrumental) Rails エンジニア vimrc : 4000行ぐらい? 使用 Vim プラグイン数: 174個 自作プラグイン数: 150個以上

Slide 10

Slide 10 text

自己紹介 名前:osyo Twitter : @pink_bangbi github : osyo-manga ブログ : Secret Garden(Instrumental) Rails エンジニア vimrc : 4000行ぐらい? 使用 Vim プラグイン数: 174個 自作プラグイン数: 150個以上 GVim 使い

Slide 11

Slide 11 text

自己紹介 名前:osyo Twitter : @pink_bangbi github : osyo-manga ブログ : Secret Garden(Instrumental) Rails エンジニア vimrc : 4000行ぐらい? 使用 Vim プラグイン数: 174個 自作プラグイン数: 150個以上 GVim 使い ブラウザ上で :help できるサイトをつくったり http://vim-help-jp.herokuapp.com/# ` `

Slide 12

Slide 12 text

エディタ歴

Slide 13

Slide 13 text

エディタ歴 TeraPad: 2〜3年

Slide 14

Slide 14 text

エディタ歴 TeraPad: 2〜3年 Visual Studio: 5〜7年

Slide 15

Slide 15 text

エディタ歴 TeraPad: 2〜3年 Visual Studio: 5〜7年 Emacs: 3ヶ月ぐらい

Slide 16

Slide 16 text

エディタ歴 TeraPad: 2〜3年 Visual Studio: 5〜7年 Emacs: 3ヶ月ぐらい Vim: 10年 ← いまここ

Slide 17

Slide 17 text

Vim でどういう事をしている?

Slide 18

Slide 18 text

Vim でどういう事をしている? コードリーディング、ライティング

Slide 19

Slide 19 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行

Slide 20

Slide 20 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行

Slide 21

Slide 21 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック

Slide 22

Slide 22 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照

Slide 23

Slide 23 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成

Slide 24

Slide 24 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作

Slide 25

Slide 25 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find

Slide 26

Slide 26 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find git 操作(コミット)

Slide 27

Slide 27 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find git 操作(コミット) ファイルを github のブラウザで開く

Slide 28

Slide 28 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find git 操作(コミット) ファイルを github のブラウザで開く markdown を使ったスライド作成 コードブロック上のコードを実行

Slide 29

Slide 29 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find git 操作(コミット) ファイルを github のブラウザで開く markdown を使ったスライド作成 コードブロック上のコードを実行 現在のファイルの github のページを開く

Slide 30

Slide 30 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find git 操作(コミット) ファイルを github のブラウザで開く markdown を使ったスライド作成 コードブロック上のコードを実行 現在のファイルの github のページを開く ブラウザ上の入力を Vim から行う github のコメントを Vim で書く

Slide 31

Slide 31 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find git 操作(コミット) ファイルを github のブラウザで開く markdown を使ったスライド作成 コードブロック上のコードを実行 現在のファイルの github のページを開く ブラウザ上の入力を Vim から行う github のコメントを Vim で書く テキストの一括置換

Slide 32

Slide 32 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find git 操作(コミット) ファイルを github のブラウザで開く markdown を使ったスライド作成 コードブロック上のコードを実行 現在のファイルの github のページを開く ブラウザ上の入力を Vim から行う github のコメントを Vim で書く テキストの一括置換 diff のようにバッファの比較

Slide 33

Slide 33 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find git 操作(コミット) ファイルを github のブラウザで開く markdown を使ったスライド作成 コードブロック上のコードを実行 現在のファイルの github のページを開く ブラウザ上の入力を Vim から行う github のコメントを Vim で書く テキストの一括置換 diff のようにバッファの比較 英単語の検索

Slide 34

Slide 34 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find git 操作(コミット) ファイルを github のブラウザで開く markdown を使ったスライド作成 コードブロック上のコードを実行 現在のファイルの github のページを開く ブラウザ上の入力を Vim から行う github のコメントを Vim で書く テキストの一括置換 diff のようにバッファの比較 英単語の検索 SQL 文の整形

Slide 35

Slide 35 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find git 操作(コミット) ファイルを github のブラウザで開く markdown を使ったスライド作成 コードブロック上のコードを実行 現在のファイルの github のページを開く ブラウザ上の入力を Vim から行う github のコメントを Vim で書く テキストの一括置換 diff のようにバッファの比較 英単語の検索 SQL 文の整形 雑多なメモ管理

Slide 36

Slide 36 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find git 操作(コミット) ファイルを github のブラウザで開く markdown を使ったスライド作成 コードブロック上のコードを実行 現在のファイルの github のページを開く ブラウザ上の入力を Vim から行う github のコメントを Vim で書く テキストの一括置換 diff のようにバッファの比較 英単語の検索 SQL 文の整形 雑多なメモ管理 Scrapbox へのポスト

Slide 37

Slide 37 text

Vim でどういう事をしている? コードリーディング、ライティング コードの実行 テストの実行 静的コードチェック リファレンスの参照 ファイル操作 ファイル/ディレクトリ生成 シェル操作 grep / find git 操作(コミット) ファイルを github のブラウザで開く markdown を使ったスライド作成 コードブロック上のコードを実行 現在のファイルの github のページを開く ブラウザ上の入力を Vim から行う github のコメントを Vim で書く テキストの一括置換 diff のようにバッファの比較 英単語の検索 SQL 文の整形 雑多なメモ管理 Scrapbox へのポスト ツイート

Slide 38

Slide 38 text

Vim でなんでもやってるよ!

Slide 39

Slide 39 text

Vimでやってない事

Slide 40

Slide 40 text

Vimでやってない事 シェル操作 簡単な git の操作とか

Slide 41

Slide 41 text

Vimでやってない事 シェル操作 簡単な git の操作とか プロセスを常駐させるようなもの rails server とか ` `

Slide 42

Slide 42 text

Vimでやってない事 シェル操作 簡単な git の操作とか プロセスを常駐させるようなもの rails server とか 対話的なデバッグ binding.irb とか ` ` ` `

Slide 43

Slide 43 text

デモ

Slide 44

Slide 44 text

Vim を使い続ける理由

Slide 45

Slide 45 text

Vim を使い続ける理由 基本的にマウスを使わないで操作ができる かゆいところに手が届く

Slide 46

Slide 46 text

Vim を使い続ける理由 基本的にマウスを使わないで操作ができる かゆいところに手が届く 余計な表記がない シンプルな画面にカスタマイズできる

Slide 47

Slide 47 text

Vim を使い続ける理由 基本的にマウスを使わないで操作ができる かゆいところに手が届く 余計な表記がない シンプルな画面にカスタマイズできる operator / textobj が存在している テキストを編集する機能 個人的にこれが一番大きい 他のエディタにはない特徴 ` `

Slide 48

Slide 48 text

Vim を使い続ける理由 基本的にマウスを使わないで操作ができる かゆいところに手が届く 余計な表記がない シンプルな画面にカスタマイズできる operator / textobj が存在している テキストを編集する機能 個人的にこれが一番大きい 他のエディタにはない特徴 拡張性が高い・資産が大きい 制限はあるものの Vim 上でだいたい事ができる 一方で学習コストも高い ` `

Slide 49

Slide 49 text

Vim を使い続ける理由 基本的にマウスを使わないで操作ができる かゆいところに手が届く 余計な表記がない シンプルな画面にカスタマイズできる operator / textobj が存在している テキストを編集する機能 個人的にこれが一番大きい 他のエディタにはない特徴 拡張性が高い・資産が大きい 制限はあるものの Vim 上でだいたい事ができる 一方で学習コストも高い 一度環境を使えばある程度の言語に対応できる 環境や言語に依存しない ` `

Slide 50

Slide 50 text

プラグイン紹介 プラグイン管理 https://github.com/Shougo/neobundle.vim コード補完 https://github.com/Shougo/deoplete.nvim https://github.com/ujihisa/neco-look コード実行 https://github.com/thinca/vim-quickrun LSP https://github.com/prabirshrestha/vim-lsp https://github.com/mattn/vim-lsp-settings スニペット https://github.com/Shougo/neosnippet.vim https://github.com/cohama/lexima.vim

Slide 51

Slide 51 text

プラグイン紹介 コメントアウト系 https://github.com/tyru/caw.vim 単語のハイライト https://github.com/t9md/vim-quickhl カーソル下の単語のハイライト https://github.com/osyo-manga/vim-brightest ファイラ https://github.com/Shougo/defx.nvim https://github.com/kristijanhusak/defx-icons シェル https://github.com/Shougo/vimshell.vim ANSIカラーのハイライト https://github.com/powerman/vim-plugin-AnsiEsc

Slide 52

Slide 52 text

プラグイン紹介 ファイル検索系(grep / find など) https://github.com/Shougo/denite.nvim https://github.com/osyo-manga/vim-frill テキスト検索 https://github.com/haya14busa/vim-asterisk 検索数の表示 https://github.com/osyo-manga/vim-anzu ルールに沿ってテキストを置換する https://github.com/uplus/vim-clurin 対応するカッコのハイライト https://github.com/andymass/vim-matchup プレビューしながら置換 https://github.com/osyo-manga/vim-over

Slide 53

Slide 53 text

プラグイン紹介 ビジュアル的にウィンドウの選択 https://github.com/t9md/vim-choosewin インデントラインの表示 https://github.com/Yggdroot/indentLinehttps://github.com/Yggdroot/indentLine undo tree の表示 https://github.com/mbbill/undotree git 操作 https://github.com/hrsh7th/vim-versions https://github.com/airblade/vim-gitgutter https://github.com/hrsh7th/vim-gitto https://github.com/hrsh7th/vim-denite-gitto https://github.com/tyru/open-browser.vim

Slide 54

Slide 54 text

プラグイン紹介 Vim 上で github のテキストを入力 https://github.com/raghur/vim-ghost メモプラグイン https://sites.google.com/site/fudist/Home/qfixhowm https://github.com/osyo-manga/unite-qfixhowm Twitter https://github.com/basyura/TweetVim SQL の整形 https://github.com/vim-scripts/SQLUtilities

Slide 55

Slide 55 text

プラグイン紹介 (operator) ヤンクしたテキストと入れ替え https://github.com/kana/vim-operator-replace 指定したテキストとテキストの入れ替え https://github.com/osyo-manga/vim-operator-swap () や {} "" などでテキストを囲う https://github.com/rhysd/vim-operator-surround テキストのハイライト https://github.com/osyo-manga/vim-operator-highlighter 複数行の矩形操作 https://github.com/osyo-manga/vim-operator-blockwise 指定したコマンドを実行する https://github.com/osyo-manga/vim-operator-exec_command ` ` ` ` ` `

Slide 56

Slide 56 text

プラグイン紹介 (textobj) 関数の引数 https://github.com/anyakichi/vim-textobj-xbrackets () {} [] など抽象的なカッコ https://github.com/osyo-manga/vim-textobj-multiblock 正規表現にマッチするテキスト https://github.com/osyo-manga/vim-textobj-from_regexp ` ` ` ` ` `

Slide 57

Slide 57 text

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