Linux初心者で基本的な操作はできるようになったけどもっと便利に使いたいという方向けに知っておくとより便利に効率よく操作できるvimコマンドを紹介します。
ここで紹介するコマンドが使いこなせるように慣れば脱初心者といってもいいと思います。
vimの操作が初めての方はこちらの記事からご覧ください。
便利なカーソル移動
素早くカーソルを移動するためのコマンドがたくさん用意されています。
これらを覚えれば目的地に最短で到達できますので効率よく作業できます。
単語単位でのカーソル移動
コマンド | 内容 |
w | 前方に単語1つぶん移動する |
b | 後方に単語1つ分移動する |
W | スペース区切りで前方に単語1つぶん移動する |
B | スペース区切りで後方に単語1つぶん移動する |
行頭/行末への移動
コマンド | 内容 |
0 | 行頭に移動する |
$ | 行末に移動する |
指定する行への移動
コマンド | 内容 |
gg | 1行目に移動する |
G | 最後の行に移動する |
<数字>G | <数字>行目に移動する |
カット、コピー、ペースト
一般的なエディタではカット、コピー、ペーストと呼ばれる操作はvimでは呼び方が異なります。
一般的なエディタでの名称 | vimでの名称 |
カット | デリート(delete) |
コピー | ヤンク(yank) |
ペースト | プット(put) |
デリート(delete)
デリートするにはxもありますが、ここではdを紹介します。
dコマンドはどこまで削除するかを指定して使用します。
例えば、カーソル位置から行末まで削除したいということであればd$としますし、単語一つを削除したい場合はdwと指定します。
さまざまなデリート範囲の指定方法がありますので表にまとめます。
コマンド | 内容 |
d$ | 行末までデリート |
d0 | 行頭までデリート |
x, dl | 1文字をデリート |
dw | 単語1つをデリート |
dd | カーソル位置の行をデリート |
dgg | 最初の行までをデリート |
dG | 最後の行までをデリート |
ヤンク(yank)
削除するのではなく、コピーしたい場合はyを使います。
yもdと同じようにどこまでを対象範囲とするかを指定して使います。
コマンド | 内容 |
y$ | 行末までヤンク |
y0 | 行頭までヤンク |
yl | 1文字をヤンク |
yw | 単語1つをヤンク |
yy | カーソル位置の行をヤンク |
ygg | 最初の行までをヤンク |
yG | 最後の行までをヤンク |
プット(put)
dでデリートした文字列やyでヤンクした文字列は、プットするためのコマンドであるpを利用して貼り付けることができます。
例えば、ddでカーソル位置の一行を削除して貼り付けたい行までカーソルを移動し、pを利用して貼り付けすることができます。
元に戻す(アンドゥ)とやり直し(リドゥ)
誤って捜査してしまった場合に元に戻す方法があります。
例えば、dでデリートするつもりではなかった文字を削除してしまった場合などです。
直前の編集捜査を取り消して前の状態に戻るにはuを使います。
元に戻すことをアンドゥと言います。
アンドゥを取り消したい場合はCtrl + rでリドゥします。
検索と置換
検索
vimではテキストの文字列検索ができます。
文字を検索するには/を押します。
/を押すと最下行に/が表示されます。
/に続けて検索したい文字列を入力していきます。
例えば、「DocumentRoot」という文字列を検索したい場合は下記のように入力します
/DocumentRoot
/による検索は現在のカーソル位置より後に出てくる文字列から検索していきます。
検索結果が複数ある場合にはnを押すと次の検索結果に移動することができます。
逆に、前の検索結果に移動したい場合はNを入力します。
/の代わりに?で検索する方法もありますが、こちらはカーソルの上に検索をかけていきます。
コマンド | 内容 |
/<文字列> | 下方向に<文字列>を検索する |
?<文字列> | 上方向に<文字列を検索する |
n | 次の検索結果に移動する |
N | 前の検索結果に移動する |
置換
vimには文字列を置換する機能も備わっています。
ある文字列を別の文字列に置き換えたい場合は以下のように指定します。
%s/<置換元の文字列>/<置換後の文字列>/g
:を押すと再稼業にコマンド入力モードになります。
:に続いてこのコマンドを入力するとファイル中の全ての置換元文字列が<置換後の文字列>で指定した文字列に置き換わります。
初心者向け覚えておくと便利なvimコマンドまとめ
vimの便利なコマンドを紹介してきました。
ここで紹介したコマンドを覚えるだけでも十分効率よくvim操作ができるのではないでしょうか?
初めは覚えるのが大変かもしれませんが、その都度調べながら徐々に慣れていってください。
ちなみに僕はコーディングの勉強をVScodeなどを使わずにあえてvimを使うことで習得しました。
皆さんもぜひvimの操作を取得してください。
コメント