Edited at
VimDay 21

非エンジニアのためのvim

GROOVE Xという会社でエンジニアをやらせてもらってます。ロボット作ってます。

この記事が公開される頃には開発中のロボットが発表されてるはず!

弊社では、エンジニアだけでなくアニメーターと呼ばれる人たちがロボットの振る舞いを自分の手でプログラミングしています。

ほとんどのメンバーはCGアニメーションやゲームCGなどの制作経験者ですが、全員がIDEをつかってpython3を記述しているので、いつでもvimの使い方を説明できるように記事にしておこうと思います。


vimについて

LinuxやMac(Unix系のOS)で主流のエディタviの拡張版のエディタがvimです。

大抵の環境にはviが入っていて、viを扱いやすくしたのがvimになります。

viやvimはコンソール上で実行するコマンドになってますが、別のウィンドウで立ち上げたりできるgvimというのもあります。

gvimは香り屋のが有名です。https://www.kaoriya.net

windowsでも使えるし、マウス操作が最初からできるのでまずはgvimから入るのがオススメ


vimでプログラムを書くメリット

vimは書いたプログラムの編集に特化していて、キーバインド(ショートカットみたいなの)で操作することで、大量のコードを書く手間を減らすことができ、マウスもいらないのでsshでログインした先でもテキストファイルを編集することが簡単にできます。

IDEを使っていると、テキスト選択、スクロールなどはマウスを使ってやらないといけないですが、vimの場合そういった作業を全てキーボードだけで完結させられることができます。


モード

vimには大きくカーソルモードとインサートモードがあります。

編集モードはその名の通り、テキストを編集するためのモードで、プログラムを書くときはこのモードでメモ帳のごとくタイピングをしてプログラムやテキストファイルを編集します。

カーソルモードは、テキストファイルを閲覧するのに特化してますが、コピペしたり、文字列を置換したりすることもできます。


これだけ覚えてとりあえず触ってみて

起動時はカーソルモードで始まる、カーソルモードから抜けるにはiを押す

あとは思うままに編集する


すっごい使いづらいと思う

何が足りないと思うかは素のvimを使ってから色々考えるのがいいです。

例えば、行番号を表示したい場合はカーソルモードで

:set number

と入力する

自動でインデントしたい場合は

:set indent

する

起動時に実行したい場合は~/.vimrcに記述する

そうやってvimの使い方を一つづつ覚えて行くのがvimと仲良くなるコツです。

最初はIDEに戻りたくなると思うけど、使っていくうちにIDEを使うよりも効率が良くなるタイミングが来るはず!