はじめに
今後本格的にプログラミングを始めるということもあり、知り合いのエンジニアにVimを使うことを勧められた。
学習の際に参考にしたサイトは最後にまとめて記述するが、特にこちらのサイトは大いに参考にさせていただいた為、特記しておく。
また、Vimの学習をする際には自分で実際にVimを操作しながら学習することが望ましく、これを推奨したい。
Vimをはじめる
僕は基本的にAtomを使っているので、プラグインでvim-mode-plus とvim-mode-plus-ex-modeを入れた。このプラグインの細かい機能などはさておき(あまり把握はしていない)、これでAtom上でVimを使うことができるようになった。
ターミナル上でvim
と入力することでもVimを使うことができる。
Vimをつかってみる
Vimを触ってみてまず戸惑うのはNormalモードとInsartモードがあることだった。プログラミングをするために、Vimの特性を活かすことより普通にコーディング出来るようにすることを優先する。
まずはi
キー、あるいはa
キーを押す。これでnormalモードからInsartモードに切り替わり、いつものように入力することができるようになる。ESC
キーを押すことでNormalモードに戻る。
とりあえず、これで普通にコーディングはできるようにはなった。
それでは、もう少し細かくVimのコマンドを見ていこう。
ところで、Vimの保存方法としてNormalモードで:wq
を用いるが、Atomでは普通にCtrl-S
で保存ができるのであまり気にしていない。ターミナルなどで操作しているときは:wq
をお忘れなく!
Vimをもう少しつかってみる
ここまでVimらしいことは何一つしていない。
ここでVimのNormalモードで使うことのできるコマンドをいくつかリストにしてみる。
コマンド | 意味 |
---|---|
x | カーソル上の文字を消す |
dd (dを2回押す) | 現在の行をカット |
yy | 現在の行をコピー(ddp と同じ) |
p | ペースト |
u | アンドゥ(戻る) |
Ctrl-r | リドゥ(進める) |
これでNormalモードのままコードをある程度編集することができるようになった。
Vimで移動してみる
"Vimmer"はキーボードから手を離さずに自由自在にカーソルを移動することができるという。
カーソルを移動するために使うことのできるコマンドをリストにしてみる。
コマンド | 意味 |
---|---|
h j k l | それぞれ、← ↓ ↑ → |
O | 改行しInsartモード |
0 | 行の先頭へ移動 |
^ | 行の空白でない先頭へ移動 |
$ | 行の末尾へ移動 |
g_ | 行の空白でない末尾へ移動 |
簡単な移動は以上の通り。
加えて、個人的に便利だと思った移動が以下のものである。
コマンド | 意味 |
---|---|
G | 最後の行に移動 |
NG | N行目に移動 |
w | 次のwordの先頭に移動する |
e | 次のwordの末尾に移動する |
W | 次のカタマリの先頭に移動する |
E | 次のカタマリの末尾に移動する |
b | 前の単語の先頭に移動する |
これらを組み合わせて高速でカーソルを移動することができる。
Vimで繰り返し
Vimで繰り返しもすることができる。
コマンド | 意味 |
---|---|
. (ドット) | 最後のコマンドの繰り返す |
N<コマンド> | コマンドをN回繰り返す |
例えば、2dd
というコマンドでは2行カットできる。3p
で3回ペーストすることができるのである。10i
というコマンドはコードを入力したのちEsc
キーを押すと、そこまでに入力したコードを10回繰り返してくれる。これは実際に試してみよう。
入力したのは5i
vim yeah Enter
Esc
だ。
Esc
を押したタイミングで、そこまでに入力した分を繰り返してくれる。
ここまでのまとめ
ひとまずVimの学習を始めて2時間程度でこのくらいは理解した。
Vimでできることが他にもまだまだあることは、このチートシートを見たら一目瞭然である。僕はまだVimの片鱗に触れてすらいないであろうことも。
一人前のVimmerになるために、基本的なコマンドのみならず、様々なコマンドを試して遊んでみようと思う。