header image
  • プログラム・ソフト
  • 物理学・工学
  • ガジェット
  • 当サイトについて
  • お問い合わせ
  • プログラム・ソフト
  • 物理学・工学
  • ガジェット
  • 当サイトについて
  • お問い合わせ
  • HOME
  • プログラム・ソフト
  • Vim
  • Vimで便利な小技(よく使うコマンド集)

Vimで便利な小技(よく使うコマンド集)

投稿日:2020年9月18日 更新日:2022年6月15日

  • Tags: [コマンド集], [テキストエディター], [使い方],

サムネイル

Linuxで標準的に使われているテキストエディターVim (Vi)ですが、自然とコマンドを扱えるようになってくると、もう手放せないぐらい効率的になってきます。

Vimを使っている中で個人的に、特にこのコマンドが便利だな、よく使ってるな、というコマンドをまとめてみました。
ものすごく基本的なコマンドやコピ&ペーストコマンドは今回入れていません。

さらに多くのコマンドを知りたい方は下記もどうぞ。
>> 【動画あり】Vimのコマンドを一覧にまとめてみた

  • 移動系コマンド
    • 1ワード分移動
    • 行内の指定の文字に移動
    • 半画面 or 1画面分上下に移動
    • 対となる括弧に移動
    • 指定の行に移動
    • 直前に変更した場所へ移動
    • カーソル上の単語のある場所へ移動(検索)
  • 挿入モードへの入り方
    • カーソルのある行の先頭・最後尾に挿入
    • カーソルの上・下に行を挿入
    • 複数行に同じ文字を挿入
    • 文字を削除して挿入
  • 文字を置換
    • 一文字置換
    • テキストファイル全体での置換
  • その他
    • インデントを変える
    • エディターを分割
    • Linuxコマンドの使用
    • LinuxターミナルとVimエディター間を行き来する
  • 最後に

移動系コマンド

1ワード分移動

1ワード移動
Fig.1. 1ワード移動

コマンド

  • w:前方へ1ワード分カーソル移動
  • b:後方へ1ワード分カーソル移動

カーソルを一文字分左右へ移動させるh, l よりも、もっと大胆に移動したい!という時に使っています。

行内の指定の文字に移動

行内の指定文字に移動
Fig.2. 行内の指定文字に移動

コマンド

  • fn : カーソルの右方向にある文字 n へ移動
  • Fm : カーソルの左方向にある文字 m へ移動
  • ; : 指定文字への移動を繰り返す
  • , : 指定文字への移動を繰り返す(逆方向)

カーソルを左右移動させるときに、この文字に一気に飛びたい!というときに使っています。
一行が長い場合など役に立ちますね。
一行の中に指定文字が複数ある場合、カーソルの近い方に飛びますので、その先に行きたい場合は ; をさらに入力します。

半画面 or 1画面分上下に移動

半画面、1画面分上下に移動
Fig.3. 半画面、1画面分上下に移動

コマンド

  • Ctrl - u:半画面分上に移動
  • Ctrl - d:半画面分下に移動
  • Ctrl - b:1画面分上に移動
  • Ctrl - f:1画面分下に移動

上下方へ大きく動かしたいときに使っています。

半画面か1画面かは、好みによると思いますが、多くの場合私は半画面移動を使っています。

対となる括弧に移動

対の括弧に移動
Fig.4. 対の括弧に移動

コマンド

  • %:カーソル上の括弧の対となる反対側へ移動

カーソルを括弧の上に持っていき、コマンドを打つと移動します。
プログラムコード上で括弧が複数入れ子になっていると、括弧の対応関係が分かりにくくなりますが、そんなときにこのコマンドで括弧の前後がわかります。

指定の行に移動

指定した行番号へ移動
Fig.5. 指定した行番号へ移動

コマンド

  • :10<Enter>:10行目へ移動

コマンドモードになりますので、最後にEnterを忘れずに。
プログラムを実行し「〇行目にエラー」と出たときに、その場所へパッと移動するときに便利です。

直前に変更した場所へ移動

直前の変更場所へ移動
Fig.6. 直前の変更場所へ移動

コマンド

  • g;:直前の変更場所へ移動
  • g,:直後の変更場所へ移動

テキスト編集中に、確認のためにスクロールして、また元の位置へ戻りたいときに便利です。
g;を繰り返すと更に前の変更点へと移動できますが、行き過ぎたときはg,で逆方向に移動できます。

カーソル上の単語のある場所へ移動(検索)

単語検索
Fig.7. 単語検索

コマンド

  • *:カーソル上の単語を検索(順方向)
  • #:カーソル上の単語を検索(逆方向)
  • n:検索を繰り返す(順方向)
  • N:検索を繰り返す(逆方向)

カーソルを単語に重ねるだけであり、検索キーワードを入力する手間が省けるため、パパっと検索したいときに使えます。
検索キーワードがハイライトされるので「この単語次にどこで使われてるかな」と思ったときにも有効です。

挿入モードへの入り方

ノーマルモードから挿入(インサート)モードへ入る時に、コマンド(キー)によってカーソルのどの位置に挿入するかが異なります。

カーソルの左に挿入するiと、右に挿入するaが基本ですが、他に以下のようなものがあります。

カーソルのある行の先頭・最後尾に挿入

カーソル行の先頭または最後尾から挿入モードに移行
Fig.8. カーソル行の先頭または最後尾から挿入モードに移行

コマンド

  • I:カーソルのある行の先頭へ挿入
  • A:カーソルのある行の最後尾へ挿入

行の最初または最後に挿入したいときに使います。

カーソルの上・下に行を挿入

カーソルの上または下に新しい行を追加して挿入モードに移行
Fig.9. カーソルの上または下に新しい行を追加して挿入モードに移行

コマンド

  • O:カーソルの上に新しい行を挿入
  • o:カーソルの下に新しい行を挿入

カーソルの上または下に新しい行を作り、そこに挿入する形で挿入モードへ移行します。

複数行に同じ文字を挿入

矩形選択(ヴィジュアルモード)から挿入モードへ移行
Fig.10. 矩形選択(ヴィジュアルモード)から挿入モードへ移行

コマンド

  • Ctrl - v →(複数行選択)→ I:選択した複数行に同時に挿入

ヴィジュアルモードの矩形選択を使った方法です。
矩形選択した位置に、同時に同じ文字が挿入されます。
挿入モードを解除した瞬間に反映されるはずです。
コードの複数行をコメントアウトするときによく使います。

文字を削除して挿入

1ワード削除して挿入モードへ移行
Fig.11. 1ワード削除して挿入モードへ移行

コマンド

  • cw:1ワード削除し挿入

カーソル上の1ワードを削除して挿入モードへ移行します。

1単語書き換えたいときに使っています。

文字を置換

一文字置換

カーソル上の一文字の置換
Fig.12. カーソル上の一文字の置換

コマンド

  • r:カーソル上の一文字を置換

rを押した直後に、新しく置き換えたい文字を押すと、カーソル上の一文字がその文字に置き換わります。
数字を変えるのによく使っています。

テキストファイル全体での置換

ファイル内に存在する単語を置換
Fig.13. ファイル内に存在する単語を置換

コマンド

  • :%s/置換前 /置換後/g<Enter>:ファイル内の置換前の文字を置換後に置き換える

コマンドモードを使います。最後にcを付け足すと、すべての置換場所で確認が入ります。
プログラムの変数名を変えたいときなどに使えますね。

置換コマンドの書き方や他の置換コマンドについて、下記にまとめました。

>> Vimでサクッと置換する方法と置換コマンドの構成

その他

インデントを変える

インデントを増やす(減らす)
Fig.14. インデントを増やす(減らす)

コマンド

  • >>:インデントを増やす
  • <<:インデントを減らす

インデント(字下げ)を操作したいときに使えるコマンドです。
入力コマンドがインデント操作の方向に対応しているので覚えやすいかと思います。

エディターを分割

エディターの分割
Fig.15. エディターの分割

コマンド

  • :sp<Enter>:エディターを上下に分割
  • :vs<Enter>:エディターを左右に分割
  • Ctrl - w w:分割したエディター間を移動

エディターを分割するコマンドです。テキストを比較したいときによく使います。
分割後は、開いているものとは異なるファイルを開くことが多いと思うので、ファイルを開くコマンド

:e 【ファイル名】

も併せて覚えるとよいでしょう。

Linuxコマンドの使用

Vim上でのLinuxコマンドの使用
Fig.16. Vim上でのLinuxコマンドの使用

コマンド

  • :!【Linuxコマンド】<Enter>:Linuxコマンドを使用する

テキスト編集中にLinuxコマンドを使うことができます。
Vimでソースコードを編集中に、そのコードを実行してみたいときなどに使うことが多いと思います。

例えばC言語のコード編集中に

:! gcc %

と入力することで、編集中のファイルをコンパイルできます。
% というのは”今開いているファイル”を意味していますので、

  gcc 【編集ファイル】

を端末(ターミナル)上で実行していることに対応します。

LinuxターミナルとVimエディター間を行き来する

一時的にVimを閉じる、再度開く
Fig.17. 一時的にVimを閉じる、再度開く

コマンド

  • Ctrl - z:Vimエディターを一時的に閉じる(Vimエディター上で使用)
  • fg:一時的に閉じたエディターを再度開く(ターミナル上で使用)

Vimを一時的に閉じて、Linux (Mac)のターミナルに戻りたいという時に使えます。
このコマンドはVim以外にも使えるLinuxの機能です。
一時的に停止したエディターがたくさん溜まってわけわからなくなった場合は、Linuxターミナル上でjobsコマンドを使うことで、一時停止いているプログラムの一覧が表示されます。
再度開きたいエディターの番号を確認したら

  fg 【番号】

で目的のエディターを開くことができます。

最後に

以上、個人的によく使うコマンドをまとめてみました。
さっと目的の位置にカーソル移動できることが、他のテキストエディターにはない大きな利点に感じています。

さらに多くのコマンドを下記にまとめましたので、もっとVimコマンドを知りたい方はどうぞ。
>> 【動画あり】Vimのコマンドを一覧にまとめてみた

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


【動画あり】Vimのコマンドを一覧にまとめてみた

Vimの行番号の表示設定と移動方法

【超初心者向け】Vim(Vi)でなんとかファイル編集する方法

WSL+VSCode上でJupyter(Python)を使う

マウスでロボットアームを制御してみる【Python】

Win11にWSLインストール(エラー発生したので備忘録)

Windows上のVSCodeでWSLのgitを使う

自作ラズパイゼロケースを3Dプリンター用にモデリング【FreeCAD】

  • プロフィール

  • Yoshiharu

  • 現在、ひよっこ光学系エンジニアをやっている一般人です。我流でプログラムをいじったりしています。備忘録、知識整理を兼ねてアウトプットをしていく予定です。

    • 【ラズパイ】格安な抵抗式・静電容量式の土壌湿度センサーを実際に使って比較

      2022.11.23

      【ラズパイ】格安な抵抗式・静電容量式の土壌湿度センサーを実際に使って比較


    • ELEGOO Neptune 2Sをレビュー!2万円台3Dプリンターの実力を実際に使って評価!

      2022.11.03

      ELEGOO Neptune 2Sをレビュー!2万円台3Dプリンターの実力を実際に使って評価!


    • 自作ラズパイゼロケースを3Dプリンター用にモデリング【FreeCAD】

      2022.10.13

      自作ラズパイゼロケースを3Dプリンター用にモデリング【FreeCAD】


    • 【初心者向け】FreeCADの基本的な使い方と手順の流れ

      2022.10.11

      【初心者向け】FreeCADの基本的な使い方と手順の流れ


    • 【Python】ラズパイでLチカ:LEDの取り扱い~抵抗値の計算

      2022.09.07

      【Python】ラズパイでLチカ:LEDの取り扱い~抵抗値の計算


  • アーカイブ

    • 2022年11月
    • 2022年10月
    • 2022年9月
    • 2022年8月
    • 2022年5月
    • 2022年4月
    • 2022年3月
    • 2022年1月
    • 2021年11月
    • 2021年9月
    • 2021年8月
    • 2021年7月
    • 2021年2月
    • 2021年1月
    • 2020年12月
    • 2020年10月
    • 2020年9月
    • 2020年8月
    • 2020年7月
    • 2020年3月
    • 2020年2月
    • 2020年1月
  • カテゴリー

    • Vim
    • ガジェット
    • プログラム・ソフト
    • 光学
    • 情報処理
    • 物理学・工学
    • プログラム・ソフト
    • 物理学・工学
    • ガジェット
    • 当サイトについて
    • お問い合わせ
    Y Lab Desk

    Copyright © Y Lab Desk, 2022 All Rights Reserved.