はじめに
vimを知らない人や、興味がある人向けに説明する記事です。
筆者も仕事上で使用していますが、とても便利で色々な人に知ってもらいと思い記事にしました! また、復習や新たな発見も兼ねて書いて行きたいと思っています。
vimとは
vim(ヴィム)と読みます。
ターミナル上で動作するCUIエディタです。CUIというのは、MacのターミナルやWindowsのコマンドプロンプトなどを指してます。
キーボードから手を離さずに操作することができ、大変便利です。
4つのモードを切り替えて操作します。覚えることは多いですが、慣れてしまえば効率よく作業が行えます。
モードについて
基本的にはどのモードに移行するにもノーマルモードから移行します。
- ノーマルモード
vimを起動した際の一番最初のモードです。
テキスト編集に特化したモードで、主にカーソル移動、ヤンク(コピー)、貼り付け、削除などが行えます。
ESCを押すことで各モードからノーマルモードに戻ります。
自分の操作が分からなくなり困ったらESCを連打しましょう!そうすれば道が開けるはず、、
主なコマンドは以下になります。
【カーソル移動】
コマンド | 説明 |
---|---|
h | 左に移動 |
j | 下に移動 |
k | 上に移動 |
l | 右に移動 |
0 | 行の先頭に移動 |
$ | 行の末尾に移動 |
^ | 行の先頭(空白でない)に移動 |
w | 次の単語の先頭(空白でない)に移動 |
e | 次の単語の末尾(空白でない)に移動 |
b | 前の単語の先頭(空白でない)に移動 |
f{文字} | 次の{文字}に移動 |
F{文字} | 前の{文字}に移動 |
gg | ファイルの先頭に移動 |
G | ファイルの最終行に移動 |
数字入力後に押すとその数字分だけその操作を行います。
例:2w 2個目の単語の先頭に移動
f{文字}の次の移動を連続に行うには ; 戻るには , を入力
【ヤンク(コピー)、貼り付け、削除】
コマンド | 説明 |
---|---|
y | コピー |
p | 貼り付け |
d | 削除 |
x | 1文字を削除 |
yyやddなど文字を連続で入力すると行のコピー、削除になります。
pやdで貼り付け、削除を繰り返す場合、. を使用します。
di]で[]の中身を削除できます。
【その他】
コマンド | 説明 |
---|---|
g* | カーソル上にある文字を検索 |
gu | 小文字にする |
gU | 大文字にする |
r{文字} | {文字}に置換する |
> | インデントを1つ追加(空行は含まない) |
< | インデントを1つ削除 |
u | undo |
Ctrl+r | redo |
Ctrl+a | カーソルの右側で一番近い数値をインクリメント |
Ctrl+x | カーソルの右側で一番近い数値をデクリメント |
>Gでファイル末尾までインデント(空行は含まない)、>{数字}jで下に{数字}分インデントできます。
- ビジュアルモード
v、Ctrl+vなどでこのモードに移行します。
ノーマルモードのカーソル移動を使用して選択範囲を決めます。その後、yやdでコピー、削除などが行えます。
コピー、削除の動作を行った後はノーマルモードに戻ります。
下記のコマンドはすべてビジュアルモードに移行します。
コマンド | 説明 |
---|---|
v | 選択 |
V | 行選択 |
Ctrl+v | 矩形選択 |
- 挿入モード
i,aなどでこのモードに移行します。
文字の入力、削除などが行えます。
下記のコマンドはすべて挿入モードに移行します。
コマンド | 説明 |
---|---|
i | カーソルの前 |
a | カーソルの後 |
o | 後に改行 |
O | 前に改行 |
cw | カーソルの位置から文字列を削除 |
ciw | カーソル上の文字列を削除 |
- コマンドラインモード
:、/によってコマンドラインモードに移行します。
/の後の文字列を検索することが出来ます。
繰り返し行う場合、nで次を検索し、Nで前を検索します。
:はexコマンドと呼ばれており様々なことが出来るため、ここでは簡単なものだけ紹介します。
コマンド | 説明 |
---|---|
:w | ファイルを保存 |
:w {ファイル名} | {ファイル名}で保存 |
:wq | ファイルを保存して終了 |
:q! | ファイルを保存せずに終了 |
:{数字} | {数字}行目に移動 |
今回紹介させて頂いたものはほんの一部でしかありませんが、基本的なvimの使い方は出来るようになるかと思います。
vimにはvimtutorという練習ツールがあるため、是非試してみてください。
筆者も覚えるのは大変でしたが、少しずつ出来ることが増える喜びがあり、苦痛ではありませんでした.(今もまだ新たな発見があります汗)
vimはコマンドの組み合わせによって色々なことが出来ます。興味のある方は調べたり使ってみたりして試してみるといいかもしれません。
次回はコマンドラインモードについてか、vimのカスタマイズ方法について書きたいと思います。(たぶん)