Slide 1

Slide 1 text

PHPer のための Vim 実践⼊⾨ 2020.12.12 PHP Conference Japan 2020 株式会社M&Aクラウド 濱⽥晃輔 @ hamakou108

Slide 2

Slide 2 text

⾃⼰紹介 濱⽥晃輔 @ hamakou108 株式会社M&Aクラウド Web エンジニア PHP, JavaScript (Node, Vue), etc. Vimmer このスライドは Vim (+ marp) で書きました

Slide 3

Slide 3 text

Vim 使ってますか?

Slide 4

Slide 4 text

私はほぼ毎⽇ Vim を使ってます

Slide 5

Slide 5 text

Vimmer に対する世間のイメージ

Slide 6

Slide 6 text

(そう⾔われてまで) どうしてそんなに Vim にこだわるの? スピード? コマンドの多さ?

Slide 7

Slide 7 text

Mastering the Vim Language - YouTube

Slide 8

Slide 8 text

Chris Toomey ⽒の⾔葉 Speed is nice, it's a benefit that I do get from using Vim but it's not the key reason that I use it. I use Vim because I don't have to think. Vim からその素晴らしい操作スピードを享受していますが、 Vim を使⽤する最も重要な 理由はスピードではありません。頭を使う必要がなくなるから Vim を使うのです。

Slide 9

Slide 9 text

使えば使うほど思考と操作のシンクロ率が上がるから ※ 個⼈の感想です。

Slide 10

Slide 10 text

ということで、みんな Vim を使おう!

Slide 11

Slide 11 text

fin

Slide 12

Slide 12 text

fin

Slide 13

Slide 13 text

Vim の弱点: 開発補助機能の不⾜

Slide 14

Slide 14 text

現代の開発には IDE が備える開発補助機能は不可⽋ Completion, Snippet, Linting File Tree Run Test Git ...

Slide 15

Slide 15 text

Vim は本格的な開発には使えない?

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Vim (左)と PhpStorm (右)の⽐較

Slide 18

Slide 18 text

主な使⽤技術 Language Server Protocol (LSP) Vim [^1] + plugins [^1]: 正確には Neovim という別流派の Vim 実装を使っています。

Slide 19

Slide 19 text

Language Server Protocol (LSP)

Slide 20

Slide 20 text

Language Server Protocol (LSP) ⾃動補完やリンタなどの機能を開発環境に提供する I/F を標準化するためのプロトコル What is the Language Server Protocol? - Microsoft

Slide 21

Slide 21 text

Plugins

Slide 22

Slide 22 text

Completion, Snippets, Linter coc.nvim, coc-phpls, coc- snippets LSP 互換の開発補助プラグイン ⼊⼒中の補完やスニペット挿⼊ リンティング その他の機能 定義ジャンプ シンボルの参照先の⼀覧表⽰ シンボル名の⼀括リネーム etc.

Slide 23

Slide 23 text

File Tree defx.nvim, defx-icons, defx-git ツリー表⽰ ファイルのアイコン表⽰ Git のステータス表⽰ 作成や削除といったファイル操作

Slide 24

Slide 24 text

Test vim-test スコープごとのテスト実⾏が可能 カーソル⾏のテスト テストクラスの全テスト テストスイーツの全テスト

Slide 25

Slide 25 text

Git vim-gitgutter, fugitive.vim 修正箇所を + , - , ~ で⾏番号の 隣に表⽰ Vim 上で git status を開き、そ のまま add, commit などが可能

Slide 26

Slide 26 text

まとめ Vim は思考負荷を軽減してくれる素晴らしいエディタ LSP と Plugins を駆使すれば Vim でも PHP の開発は⼗分可能 開発環境の構築は楽しいし、学びも多いのでオススメ!

Slide 27

Slide 27 text

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