インフラのお仕事にはviコマンドの習得が必須!(たぶん)
どの現場でもとにかく使うので特に学ぶまでもなく我流で今までやってきましたが、最近「vimtutor」というvim習得に便利なコマンドがあることを現場の人に教えていただいたので(今さら…って感じですが)、紹介していこうと思います。
そもそもvimとは?
vimの存在は知ってはいましたが、正直viで大体の作業が事足りてしまうので今まで意識していませんでした。なので、viとの比較も兼ねて特徴を軽く調べてみました。
主な特徴:
・Vi IMprovedを縮めて「vim」
・最小構成でOSインストールした場合、vimは入っていないことがある
・豊富なオンラインヘルプ
・.vimrc設定ファイルで機能を追加可能
・ビジュアルモード
webの記事を見る限りだと、プライグインなどで自己流にカスタマイズできることが利点として挙げられていました。
vimtutorでお勉強
とにもかくにも触ってみなければよく分からない。
ということで、さっそくvimtutorコマンドを使ってみることに。
環境は以前に紹介したWSLの「Ubuntu」。
whichコマンドでvimが標準インストールされていることを確認。
ついでにバージョンも確認↓
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 10 2018 21:31:58)
Included patches: 1-1453
最新verではないようですがコマンド実行には特に支障ないため、
「vimtutor」を実行!
![](https://image.jimcdn.com/app/cms/image/transf/dimension=681x10000:format=png/path/s9865c8516a7301d3/image/i151215915f515884/version/1578535042/image.png)
Oh,English・・・。
英語の勉強も一緒にしたい人はこれでもいいかもしれませんが、
出来れば日本語でやりたいのでオプションに「ja」を追加して再実行。
![](https://image.jimcdn.com/app/cms/image/transf/none/path/s9865c8516a7301d3/image/ia928ce94d7ef907f/version/1578536046/image.png)
いけた!
最初の説明にもありますが、完了までには25~30分ほどかかります。
結構ボリュームあってやりごたえあります。
内容としては以下のように、
![](https://image.jimcdn.com/app/cms/image/transf/dimension=681x10000:format=png/path/s9865c8516a7301d3/image/i4e3f9ed45c1297df/version/1578636260/image.png)
挿入モードに切り替えて文字を入力する基本的な操作から、
![](https://image.jimcdn.com/app/cms/image/transf/dimension=681x10000:format=png/path/s9865c8516a7301d3/image/if1ff6dbeceff19a0/version/1578636406/image.png)
ビジュアルモードを起動→カーソルを動かして該当箇所を矩形選択→yで選択箇所をコピー→j$で行末に移動→pで貼り付け、みたいなvim特有の操作まで説明してくれる。
![](https://image.jimcdn.com/app/cms/image/transf/dimension=681x10000:format=png/path/s9865c8516a7301d3/image/i6d79a6cc1727d6c6/version/1578636656/image.png)
複数のレッスンに分かれており、一つのレッスンにつき複数の操作を覚えられる。最後にはそのレッスンで行った操作を要約してくれる。親切。
やってみた感想
普通に楽しい。
hjklのキー操作からvim特有のビジュアルモードの使い方まで、
例文をもとに分かりやすく教えてくれる。
自分のようにviに少し慣れた人にとっては復習も兼ねて学べるし、
初心者にとってもかなり良い教材のように思えました。
・・・というか逆にこのチュートリアルをマスターしたら、少なくともviコマンドで困ることはなくなる気さえする。
この「vimtutor」で学べる事以外にも、vimでは色々な機能やプラグインが用意されているようなので、vimを使いこなす第一歩として「vimtutor」おすすめです。
![](https://image.jimcdn.com/app/cms/image/transf/dimension=681x10000:format=png/path/s9865c8516a7301d3/image/i3483aacd708d527a/version/1578547331/image.png)