背景
私はこれまでにちょっとした文章編集が出来る程度にはVimを使ってきました。しかし、最低限の使い方しか覚えていませんでした。今回は、初級Vimmerからもう一歩成長するためにこれは覚えておきたい、と思うものをまとめてみました。
初級Vimmer
これさえ覚えてればなんとかなる、というのをまずは紹介します。
モードの切り替え
Vimにはいくつかのモードがあり、それを切り替えていく必要があります。最低限、コマンドモードと入力モードの切り替えが出来ればなんとかなります。
コマンドモード→入力モード i
Vimを開いたときはコマンドモードになっています。しかしそのままでは文字を入力出来ません。そこでまずは、iを入力することで入力モードに切り替えます。入力モードへの切り替え方はいくつかありますが、iを押せば最低限なんとかなります。
コマンドモード→入力モード Esc
文章編集が終わって保存するためにはコマンドモードから入力モードに切り替えなければなりません。そんなときはEscを押せば切り替えられます。
保存と終了
保存 :w
コマンドモードで、: + wで保存できます。
終了 :q
コマンドモードで、: + qで終了できます。
強制的に保存 :q!
ファイル編集しちゃったけど保存せずに終了したいときは、コマンドモードでこれを使います。
保存+終了 :wq
保存してそのまま終了もしたいときは、コマンドモードでこれを使います。
中級Vimmer
ここからが本番です。上記で紹介したことが分かって入れば、とりあえずなんとか文章編集することは出来ます。しかし、プロVimmerからするとめちゃくちゃ効率悪いし、便利な機能を何一つ使ってないんだと思います(反省・・・)。これから紹介するのを使いこなせるようになれば、中級とまではいかなくても脱初心者くらいは出来るのではないかと思います。
カーソル移動
コマンドモードにて、矢印キーを使えばカーソルを移動することが出来ます。しかし、それは初級Vimmerのやることです。Vimにはカーソル移動を素早く行える方法がいくつもあります。少しずつ使いこなせるようになりましょう。
一つずつ移動 kjhl(↑↓←→)
Vimでは上下左右 ↑↓←→ が、 kjhl に対応しています。初めは矢印キーの方が使いやすいですが、 kjhl に慣れることでホームポジションから手を動かすことなく一つずつの移動を行うことが出来ます。脱初心者の第一歩ですね。
| 初級 | 中級 |
|---|---|
| ↑ | k |
| ↓ | j |
| ← | h |
| → | l |
行移動 ^``````$
コマンドモードにてこれらを使えば、行の先頭と末尾へ一発で移動することが出来ます。
| 行の先頭へ | ^ |
| 行の末尾へ | $ |
ファイル移動 gg``````shift+g
コマンドモードにてこれらを使えば、ファイルの先頭と末尾へ一発で移動することが出来ます。
| ファイルの先頭へ | gg |
| ファイルの末尾へ | shift+g |
コピー&ペースト
1行コピー yy
コマンドモードにて、コピーしたい行にカーソルを移動し、yyと入力するとその行をコピーすることが出来ます。
n行コピー nyy
例えば、その行から5行コピーしたい場合は5yyと入力すればよいです。
1行ペースト p
コマンドモードにて、pを入力することで、カーソルがある行の下の行にコピーしたものを1つ分ペーストすることが出来ます。
n個ペースト np
例えば、コピーしたものを3つ分ペーストしたい場合は3pと入力すればよいです。
削除
コメントにより追記(4/20)させていただきます
1文字削除 x
コマンドモードにて、消したい文字にカーソルを合わせて、xを入力すると1文字削除することが出来ます。
1行削除 dd
コマンドモードにて、消したい行にカーソルを合わせて、ddを入力すると1行削除することが出来ます。
戻る u
直前の編集を取り消したい場合は、uを使いましょう。いわゆる command + z 的な感じです。
まとめ
Vimにおいて便利な機能はまだまだありますが、今回は初級Vimmerが次に取り込みやすそうなものをいくつか紹介しました。よく使いそうなあたりから身につけて、だんだんとVimを効率よく使いこなせるようになりましょう!