Vimで便利な小技(よく使うコマンド集)
投稿日:2020年9月18日 更新日:
Linuxで標準的に使われているテキストエディターVim (Vi)ですが、自然とコマンドを扱えるようになってくると、もう手放せないぐらい効率的になってきます。
Vimを使っている中で個人的に、特にこのコマンドが便利だな、よく使ってるな、というコマンドをまとめてみました。
ものすごく基本的なコマンドやコピ&ペーストコマンドは今回入れていません。
さらに多くのコマンドを知りたい方は下記もどうぞ。
>> 【動画あり】Vimのコマンドを一覧にまとめてみた
移動系コマンド
1ワード分移動
コマンド
w
:前方へ1ワード分カーソル移動b
:後方へ1ワード分カーソル移動
カーソルを一文字分左右へ移動させるh
, l
よりも、もっと大胆に移動したい!という時に使っています。
行内の指定の文字に移動
コマンド
f
n : カーソルの右方向にある文字 n へ移動F
m : カーソルの左方向にある文字 m へ移動;
: 指定文字への移動を繰り返す,
: 指定文字への移動を繰り返す(逆方向)
カーソルを左右移動させるときに、この文字に一気に飛びたい!というときに使っています。
一行が長い場合など役に立ちますね。
一行の中に指定文字が複数ある場合、カーソルの近い方に飛びますので、その先に行きたい場合は ;
をさらに入力します。
半画面 or 1画面分上下に移動
コマンド
Ctrl - u
:半画面分上に移動Ctrl - d
:半画面分下に移動Ctrl - b
:1画面分上に移動Ctrl - f
:1画面分下に移動
上下方へ大きく動かしたいときに使っています。
半画面か1画面かは、好みによると思いますが、多くの場合私は半画面移動を使っています。
対となる括弧に移動
コマンド
%
:カーソル上の括弧の対となる反対側へ移動
カーソルを括弧の上に持っていき、コマンドを打つと移動します。
プログラムコード上で括弧が複数入れ子になっていると、括弧の対応関係が分かりにくくなりますが、そんなときにこのコマンドで括弧の前後がわかります。
指定の行に移動
コマンド
:
10<Enter>:10行目へ移動
コマンドモードになりますので、最後にEnterを忘れずに。
プログラムを実行し「〇行目にエラー」と出たときに、その場所へパッと移動するときに便利です。
直前に変更した場所へ移動
コマンド
g;
:直前の変更場所へ移動g,
:直後の変更場所へ移動
テキスト編集中に、確認のためにスクロールして、また元の位置へ戻りたいときに便利です。
g;
を繰り返すと更に前の変更点へと移動できますが、行き過ぎたときはg,
で逆方向に移動できます。
カーソル上の単語のある場所へ移動(検索)
コマンド
*
:カーソル上の単語を検索(順方向)#
:カーソル上の単語を検索(逆方向)n
:検索を繰り返す(順方向)N
:検索を繰り返す(逆方向)
カーソルを単語に重ねるだけであり、検索キーワードを入力する手間が省けるため、パパっと検索したいときに使えます。
検索キーワードがハイライトされるので「この単語次にどこで使われてるかな」と思ったときにも有効です。
挿入モードへの入り方
ノーマルモードから挿入(インサート)モードへ入る時に、コマンド(キー)によってカーソルのどの位置に挿入するかが異なります。
カーソルの左に挿入するi
と、右に挿入するa
が基本ですが、他に以下のようなものがあります。
カーソルのある行の先頭・最後尾に挿入
コマンド
I
:カーソルのある行の先頭へ挿入A
:カーソルのある行の最後尾へ挿入
行の最初または最後に挿入したいときに使います。
カーソルの上・下に行を挿入
コマンド
O
:カーソルの上に新しい行を挿入o
:カーソルの下に新しい行を挿入
カーソルの上または下に新しい行を作り、そこに挿入する形で挿入モードへ移行します。
複数行に同じ文字を挿入
コマンド
Ctrl - v
→(複数行選択)→I
:選択した複数行に同時に挿入
ヴィジュアルモードの矩形選択を使った方法です。
矩形選択した位置に、同時に同じ文字が挿入されます。
挿入モードを解除した瞬間に反映されるはずです。
コードの複数行をコメントアウトするときによく使います。
文字を削除して挿入
コマンド
cw
:1ワード削除し挿入
カーソル上の1ワードを削除して挿入モードへ移行します。
1単語書き換えたいときに使っています。
文字を置換
一文字置換
コマンド
r
:カーソル上の一文字を置換
r
を押した直後に、新しく置き換えたい文字を押すと、カーソル上の一文字がその文字に置き換わります。
数字を変えるのによく使っています。
テキストファイル全体での置換
コマンド
:%s/
置換前/
置換後/g
<Enter>:ファイル内の置換前の文字を置換後に置き換える
コマンドモードを使います。最後にcを付け足すと、すべての置換場所で確認が入ります。
プログラムの変数名を変えたいときなどに使えますね。
置換コマンドの書き方や他の置換コマンドについて、下記にまとめました。
その他
インデントを変える
コマンド
>>
:インデントを増やす<<
:インデントを減らす
インデント(字下げ)を操作したいときに使えるコマンドです。
入力コマンドがインデント操作の方向に対応しているので覚えやすいかと思います。
エディターを分割
コマンド
:sp
<Enter>:エディターを上下に分割:vs
<Enter>:エディターを左右に分割Ctrl - w w
:分割したエディター間を移動
エディターを分割するコマンドです。テキストを比較したいときによく使います。
分割後は、開いているものとは異なるファイルを開くことが多いと思うので、ファイルを開くコマンド
:e
【ファイル名】
も併せて覚えるとよいでしょう。
Linuxコマンドの使用
コマンド
:!
【Linuxコマンド】<Enter>:Linuxコマンドを使用する
テキスト編集中にLinuxコマンドを使うことができます。
Vimでソースコードを編集中に、そのコードを実行してみたいときなどに使うことが多いと思います。
例えばC言語のコード編集中に
:! gcc %
と入力することで、編集中のファイルをコンパイルできます。
% というのは”今開いているファイル”を意味していますので、
gcc 【編集ファイル】
を端末(ターミナル)上で実行していることに対応します。
LinuxターミナルとVimエディター間を行き来する
コマンド
Ctrl - z
:Vimエディターを一時的に閉じる(Vimエディター上で使用)fg
:一時的に閉じたエディターを再度開く(ターミナル上で使用)
Vimを一時的に閉じて、Linux (Mac)のターミナルに戻りたいという時に使えます。
このコマンドはVim以外にも使えるLinuxの機能です。
一時的に停止したエディターがたくさん溜まってわけわからなくなった場合は、Linuxターミナル上でjobsコマンドを使うことで、一時停止いているプログラムの一覧が表示されます。
再度開きたいエディターの番号を確認したら
fg 【番号】
で目的のエディターを開くことができます。
最後に
以上、個人的によく使うコマンドをまとめてみました。
さっと目的の位置にカーソル移動できることが、他のテキストエディターにはない大きな利点に感じています。
さらに多くのコマンドを下記にまとめましたので、もっとVimコマンドを知りたい方はどうぞ。
>> 【動画あり】Vimのコマンドを一覧にまとめてみた