ゴリラ.vim #6で発表した資料です。「なぜ私はVimを使うことになったのか」というテーマで発表しました。強固なプロキシ環境下かつリモート越しの開発において、VS Codeの代わりにVimを試験的に使用した経験から、開発用エディターとしてのvimの有用性について情報を共有します。
なぜ私はVimを使うことになったのか開発用エディターとしてのVimの有用性に関するご報告2019/7/26 Hoda30代、業務未経験でIT業界へ飛び込みWebエンジニアへWebサービスを支えるインフラの運用保守、Python/Djangoのアプリ改修・開発など経験現在はVue.js, Golangのアプリ開発支援に従事Twitter: @1031hoda
View Slide
なぜ私はVimを使うことになったのか
現プロジェクトは強固なプロキシが敷かれた環境個々の開発者でそれぞれプロキシ対策を実施していた背景プロキシの壁環境依存をなくすため、共有のサンドボックスを用意しかしVS Codeのリモート接続がうまくいかない
- 立ちはだかるプロキシの壁- VS Codeの設定難易度の高さ背景打開案A: 有料の高機能エディターの導入(IntelliJ、Golandなど)打開案B: VimでがんばるVimならリモート接続の設定なしで使えるもっと円滑に開発を進められないか。。
目的サンドボックス内にVimを導入開発をスムーズに行えるようになるかを検証↓使いこなせれば開発用エディタとして有用であることがわかりましたので情報をシェアします!Vim
はじめにやったこと
- 基本的な操作「h, j , k, l, w, b」でカーソル移動「yy」でヤンク(コピー)、「p」で貼り付け...など- テキストオブジェクト単語や文字列をまとめて操作できる例:「diw」...カーソル位置の単語を削除 ↑「w」を「”」にすると「”」で囲まれた文字列をまとめて削除可能知っている人に聞いて基本的な使い方を復習した分かってるつもりでも意外と知らないことがあったり復習すると新たな気づきが得られる
- ビジュアルモード文字単位、行単位、矩形単位で選択し、操作、編集が可能例:複数行の行頭や行末に一気に文字をいれる- タブ機能:tabe とかで複数のファイルをタブとして開いたりできる知っている人に聞いて基本的な使い方を復習したテキストオブジェクトとビジュアルモードを使えると標準のメモ帳アプリより効率よくコーディングできる
プラグインの導入とDockerを利用した試験環境の構築
開発として使うのであれば、少なくとも下記の機能は実装したいある程度使えるようになるとVimをもっと便利にしたくなる- カラースキーム- リアルタイム入力補完- フォーマッター- リンタープラグインで実現可能
Dockerを利用した試験環境の構築GoとVimがインストールされたUbuntuのコンテナを用意コードはサンドボックスのホスト側に置き、各コンテナへマウント。開発者はssh越しにUbuntuのコンテナへアタッチし、Vimでコードを編集する。リポジトリURL: https://github.com/hodanov/docker-env-for-vim
Dockerを利用した試験環境の構築ディレクトリ構成.├── docker-compose.yml├── go/~├── go.dockerfile├── vim.dockerfile└── vimrc/└── .vimrcリポジトリURL: https://github.com/hodanov/docker-env-for-vimプラグインのインストールまで自動化docker-compose up -d ですぐに使える環境が起動Dockerのビルド時にコンテナへコピー
結果...配色、フォーマッター、リンターも使えてそこそこイケてる感じに。。!使用プラグイン- Vundle- Monokai- NERDTree- Vim-go↑ファイル マネージャーNERDTree↓リンターVim-go色 Monokai
導入は簡単だが学習コストが高い(と感じた私は弱々エンジニア)。しかしリモート越しでの開発、かつ高機能エディタが使えない環境ではEmacsと並んでおそらく最適解。先駆者の作成したプラグインが強力なので、使いこなせれば開発も捗ると思われる。そして使っていて楽しい。課題・気になる点- 入力補完機能が使いづらい(↑リアルタイムで入力補完できる?調査中)- できればデバッグもしたい(↑Vim-goの機能にあるかも?調査中←ありました!)まとめ
最後にゴリラ.vimのみなさまご静聴ありがとうございました!:wq