PHP Conference 2020 の登壇資料です。 一部 Gif アニメーションが動いていない箇所があるので、修正版を後日公開します。
PHPer のための Vim 実践⼊⾨2020.12.12 PHP Conference Japan 2020株式会社M&Aクラウド 濱⽥晃輔 @ hamakou108
View Slide
⾃⼰紹介濱⽥晃輔 @ hamakou108株式会社M&Aクラウド Web エンジニアPHP, JavaScript (Node, Vue), etc.Vimmerこのスライドは Vim (+ marp) で書きました
Vim 使ってますか?
私はほぼ毎⽇ Vim を使ってます
Vimmer に対する世間のイメージ
(そう⾔われてまで)どうしてそんなに Vim にこだわるの?スピード?コマンドの多さ?
Mastering the Vim Language - YouTube
Chris Toomey ⽒の⾔葉Speed is nice, it's a benefit that I do get from using Vim but it's not the key reason thatI use it. I use Vim because I don't have to think.Vim からその素晴らしい操作スピードを享受していますが、 Vim を使⽤する最も重要な理由はスピードではありません。頭を使う必要がなくなるから Vim を使うのです。
使えば使うほど思考と操作のシンクロ率が上がるから※個⼈の感想です。
ということで、みんな Vim を使おう!
fin
Vim の弱点: 開発補助機能の不⾜
現代の開発には IDE が備える開発補助機能は不可⽋Completion, Snippet, LintingFile TreeRun TestGit...
Vim は本格的な開発には使えない?
Vim (左)と PhpStorm (右)の⽐較
主な使⽤技術Language Server Protocol (LSP)Vim [^1] + plugins[^1]: 正確には Neovim という別流派の Vim 実装を使っています。
Language Server Protocol (LSP)
Language Server Protocol (LSP)⾃動補完やリンタなどの機能を開発環境に提供する I/F を標準化するためのプロトコルWhat is the Language Server Protocol? - Microsoft
Plugins
Completion, Snippets, Lintercoc.nvim, coc-phpls, coc-snippetsLSP 互換の開発補助プラグイン⼊⼒中の補完やスニペット挿⼊リンティングその他の機能定義ジャンプシンボルの参照先の⼀覧表⽰シンボル名の⼀括リネームetc.
File Treedefx.nvim, defx-icons, defx-gitツリー表⽰ファイルのアイコン表⽰Git のステータス表⽰作成や削除といったファイル操作
Testvim-testスコープごとのテスト実⾏が可能カーソル⾏のテストテストクラスの全テストテストスイーツの全テスト
Gitvim-gitgutter, fugitive.vim修正箇所を +, -, ~で⾏番号の隣に表⽰Vim 上で git statusを開き、そのまま add, commit などが可能
まとめVim は思考負荷を軽減してくれる素晴らしいエディタLSP と Plugins を駆使すれば Vim でも PHP の開発は⼗分可能開発環境の構築は楽しいし、学びも多いのでオススメ!
ご清聴ありがとうございました!