Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHPer のための Vim 実践入門 - PHP Conference 2020

hamakou108
December 12, 2020
490

PHPer のための Vim 実践入門 - PHP Conference 2020

PHP Conference 2020 の登壇資料です。
一部 Gif アニメーションが動いていない箇所があるので、修正版を後日公開します。

hamakou108

December 12, 2020
Tweet

Transcript

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

    View Slide

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

    View Slide

  3. Vim 使ってますか?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. Mastering the Vim Language - YouTube

    View Slide

  8. 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 を使うのです。

    View Slide

  9. 使えば使うほど思考と操作のシンクロ率が上がるから

    個⼈の感想です。

    View Slide

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

    View Slide

  11. fin

    View Slide

  12. fin

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. View Slide

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

    View Slide

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

    View Slide

  19. Language Server Protocol (LSP)

    View Slide

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

    View Slide

  21. Plugins

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide