すべてのプロダクト
Search
ドキュメントセンター

Cloud Shell:Vim エディターの使用

最終更新日:Sep 11, 2026

Vim のモード切り替え、基本的な編集コマンドの使用、コードの検索、置き換え、コメントアウトなど、一般的なタスクの実行方法を説明します。

インストール

Vim はほとんどの Linux システムにプリインストールされています。vim --version を実行して、インストールされているバージョンを確認します。このトピックでは Vim 8.0 を例として使用します。コマンドと機能は他のバージョンでは異なる場合があります。

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Aug 10 2022 11:26:47)
Included patches: 1-1763
Modified by OpenAnolis コミュニティ
Compiled by OpenAnolis コミュニティ
Enormous version without GUI.  Features included (+) or not (-):
+acl               +farsi             +mouse_sgr         -tag_any_white
 ......

モードの切り替え

vim filename を実行して、ノーマルモードでファイルを開きます。ファイルが存在しない場合、Vim が新しいファイルを作成します。次の表に、各モードとその切り替え方法を示します。

image

モード

機能

モードの切り替え

ノーマルモード

(Normal Mode)

文字または行のコピー、貼り付け、削除を行います。

  • vim <filename> を実行して、ノーマルモードでファイルを開きます。

  • 他のモードでは、Esc を押してノーマルモードに戻ります。

挿入モード

(Insert Mode)

カーソル位置に文字を挿入します。

ノーマルモードで、i,I,a,A,o,O を押して挿入モードに入ります。

説明

挿入モードがアクティブな場合、-- INSERT -- が左下隅に表示されます。

置換モード

(Replace Mode)

カーソル位置の文字を上書きします。

ノーマルモードで、R を押して置換モードに入ります。

説明

置換モードがアクティブな場合、-- REPLACE -- が左下隅に表示されます。

ビジュアルモード

(Visual Mode)

テキストを選択します。コピー、置換、削除などのコマンドは、選択されたテキストにのみ適用されます。

ノーマルモードで、v を押してビジュアルモードに入ります。

説明

ビジュアルモードがアクティブな場合、-- VISUAL -- が左下隅に表示されます。

コマンドモード

(Command Mode)

文字列の検索と置き換え、行番号の表示、変更の保存、終了などを行います。

ノーマルモードで、: を押してコマンドモードに入ります。

基本コマンド

ファイルを開く

  • vim filename:ノーマルモードでファイルを開きます。ファイルが存在しない場合、Vim が新しいファイルを作成します。

  • vim filename1 filename2:複数のファイルを開きます。

    • Vim は最初に filename1 を開きます。:w で保存してから、:bn を実行して filename2 に切り替えます。filename2 を :w で保存します。

    • :bp:前のファイルに切り替えます。

    • :ls:開いているすべてのファイルを一覧表示します。

  • :open filename3:コマンドモードで新しいファイルを開きます。最初に現在のファイルを :w で保存します。

カーソルの移動

  • ノーマルモード

    • 上矢印 / k:上に移動します。

    • 下矢印 / j:下に移動します。

    • 左矢印 / h:左に移動します。

    • 右矢印 / l:右に移動します。

  • 挿入モード

    • 矢印キーのみを使用します。

コンテンツの挿入

ノーマルモードでは、i,I,a,A,o,O を押すと挿入モードに入ります:

  • i:カーソルの前に挿入します。

  • I:行の先頭に挿入します。

  • a:カーソルの後に挿入します。

  • A:行の末尾に挿入します。

  • o:下に新しい行を追加します。

  • O:上に新しい行を追加します。

コピーと貼り付け

ノーマルモード:

  • yy:現在の行をコピーします。p で貼り付けます。

  • nyy:現在の行から n 行をコピーします。たとえば、2yy は 2 行をコピーします。

  • p:カーソルの下に貼り付けます。

  • P:カーソルの上に貼り付けます。

削除

  • ノーマルモード

    • x:カーソル位置の文字を削除します。

    • dd:現在の行を削除します。p で貼り付けられます。

    • dk:現在の行とその上の行を削除します。

    • dj:現在の行とその下の行を削除します。

    • dG:現在の行からファイルの末尾まで削除します。

    • nx:カーソルから n 文字を削除します。

    • ndd:現在の行から n 行を削除します。p で貼り付けられます。

  • 挿入モード

    • Delete キーを使用して文字を削除します。

検索

ノーマルモード

  • /text:text を検索します。デフォルトでは、大文字と小文字を区別して検索します。Enter キーを押すと、一致する箇所がハイライト表示されます。

    • 大文字と小文字を区別せずに検索するには、:set ignorecase を実行します。大文字と小文字を区別する検索に戻すには、:set noignorecase を実行します。

  • n:次の一致箇所に移動します。

  • N:前の一致箇所に移動します。

置き換え

  • ノーマルモード

    • r:カーソル位置の文字を置き換えます。

    • R:連続して置き換えを行うために置換モードに入ります。Esc を押して終了します。

    • cc:現在の行を削除して挿入モードに入ります。

    • :%s/oldtext/newtext/g:oldtext のすべての出現箇所を newtext に置き換えます。/g がない場合、各行の最初の一致箇所のみが置き換えられます。

  • 挿入モード

    • 古いコンテンツを削除して、新しいコンテンツを入力します。

元に戻すとやり直し

ノーマルモード

  • u:最後の変更を元に戻します。

  • U:現在の行のすべての変更を元に戻します。

  • Ctrl+r:最後に元に戻した変更をやり直します。

インデントと文字揃え

  • ノーマルモード

    • >>:現在の行を右にインデントします。デフォルトのインデントは半角スペース 8 個分 (タブ 1 つ) です。

    • <<:現在の行を左にインデントします。

  • コマンドモード

    • :ce:行を中央揃えにします。

    • :le:行を左揃えにします。

    • :ri:行を右揃えにします。

コードのコメントアウト

説明
  • 大規模な置き換えを行う前にファイルをバックアップするか、元に戻すコマンド (u) を使用してミスを修正してください。たとえば、sudo cp /etc/text.txt /etc/text.txt.bak を実行してファイルをバックアップします。

  • 誤ってコンテンツを削除しないように、Vim の正規表現構文を理解してください。Vim の正規表現では、/ は \/ としてエスケープする必要があります。Regex101 などのツールで練習してください。

  • プログラミング言語に合わせてコメント記号を調整してください。

  • ビジュアルモード

    • 複数の連続した行のコードをコメントアウト

      1. カーソルを上下に移動して、コメントアウトする行を選択します。

      2. : を押してコマンドモードに入ります。Vim は自動的に :'<,'> を入力します。これは選択範囲を示すものです。

      3. 置き換えコマンドを入力します。たとえば、各行の先頭に # を追加するには、s/^/#/ と入力して Enter を押します。

    • すべてのコードをコメントアウト::%s/^/#/g は、すべての行の先頭に # を追加します。

  • 挿入モード

    コメント記号を手動で入力して、コードをコメントアウトします。

保存と終了

  • 保存::w

  • 終了::q

  • 保存して終了::wq、:x、または ZZ

  • 保存せずに強制終了::q!

  • 強制的に保存して終了::wq!

ドキュメントの暗号化

  • vim -x filename:暗号化を有効にしてファイルを開きます。パスワードを設定してからファイルを保存すると暗号化が有効になります。次回以降、ファイルを開くにはパスワードが必要になります。

  • 暗号化の解除:

    1. :set key= を実行して、暗号化キーを解除します。

    2. :wq で保存して終了します。

    3. vim filename でファイルを再度開きます。パスワードの入力を求められなくなります。

シェルコマンドの実行

  • !pwd:現在の作業ディレクトリを表示します。

  • !ls:現在のディレクトリ内のファイルを一覧表示します。

マルチウィンドウ編集

  • vim -o filename1 filename2:2 つのファイルを別々のウィンドウで開きます。各ウィンドウを個別に終了します。

  • :n:引数リストの次のファイルに切り替えます。

  • :N:引数リストの前のファイルに切り替えます。

ヘルプ

  • ターミナルで vim --help を実行して、Vim コマンドの構文を表示します。

  • ノーマルモード

    • :help:Vim ヘルプドキュメント (読み取り専用) を開きます。:q で終了します。

    • :help i:i のヘルプを表示します。

    • :help yy:yy のヘルプを表示します。

    • :set nu:行番号を表示します。

使用例

設定ファイルの変更

example.conf の最初の行に Location を挿入します。

  1. vim example.conf を実行してファイルを開きます。

  2. カーソルを最初の文字に置き、i を押して挿入モードに入ります。

  3. Location と入力し、Enter キーを押して新しい行を開始します。

  4. Esc を押してノーマルモードに戻ります。

  5. :wq と入力して保存し、終了します。

    example-1-1-2.gif

対象行へのコンテンツの挿入

example.conf の 10 行目の先頭に # を挿入します。

  1. vim example.conf を実行してファイルを開きます。

  2. :10 を実行して、カーソルを 10 行目に移動します。

  3. i を押して挿入モードに入ります。

  4. # を入力します。

  5. Esc を押してノーマルモードに戻ります。

  6. :wq と入力して保存し、終了します。

    example-2-1-2.gif

コンテンツの検索と挿入

example.conf で、Include conf.modules.d/*.conf の後に LoadModule rewrite_module modules/mod_rewrite.so を挿入します。

  1. vim example.conf を実行してファイルを開きます。

  2. 対象行を検索します:/Include conf.modules.d/*.conf

  3. o を押して挿入モードに入ります。

  4. LoadModule rewrite_module modules/mod_rewrite.so を入力します。

  5. Esc を押してノーマルモードに戻ります。

  6. :wq と入力して保存し、終了します。

    example-3-1-2.gif

コンテンツの削除

example.conf で、#Listen 12.34.XX.XX:80 行の先頭から # を削除し、Listen 80 行を削除します。

  1. vim example.conf を実行してファイルを開きます。

  2. 対象行を検索します:/#Listen 12.34.XX.XX:80。カーソルは # に移動します。

  3. x を押して # を削除します。

  4. カーソルを Listen 80 行に移動し、dd を押して削除します。

  5. :wq と入力して保存し、終了します。

    delete-1.gif

docker-compose.yaml の編集

docker-compose.yaml を作成して編集します。

vim docker-yaml-2.gif

複数行のコメントの削除

  1. # が行の先頭にあり、その前にスペースやインデントがある場合を想定します。

    # This is a comment
        # Another comment
    # Yet another comment
  2. コメントを削除します。

    :%s/^\s*#\s\?//

    パターンの内訳:

    • ^:行の先頭。

    • \s*:任意の空白文字 (インデントに対応)。

    • #:コメント記号。

    • \s\?:# の後の、省略可能な半角スペース 1 つ。

    • //:一致した部分を空の文字列に置換します (つまり削除します)。

    このコマンドはファイル全体を処理します。結果:

    This is a comment
    Another comment
    Yet another comment

Vim のアップグレード

お使いの Vim のバージョンが要件を満たさない場合は、次のコマンドでアップグレードしてください。

Alibaba Cloud Linux 3 および 2

sudo yum update vim

CentOS 7 および 8

sudo yum update vim

Fedora

sudo yum update vim

Ubuntu および Debian

sudo apt upgrade vim

openSUSE

sudo zypper update vim

トラブルシューティング

  • 終了時に「E37: No write since last change」と表示される:

    • 原因:ファイルが変更されましたが、保存されていません。

    • 解決策::wq で保存して終了するか、:q! で変更を破棄します。

  • テキストを入力できない:

    • 原因:ビジュアルモードなど、挿入モード以外のモードになっている可能性があります。

    • 解決策:Esc を押してノーマルモードに戻り、その後挿入モードに入ります。

  • ファイルを保存できない:

    • 原因:現在のユーザーに書き込み権限がありません。/etc/hosts や /etc/nginx/nginx.conf などのシステム設定ファイルには、スーパーユーザー権限が必要です。

    • 解決策1:sudo vim example.conf でファイルを開きます。

    • 解決策2::w !sudo tee % を使用して管理者権限で保存します。または、sudo chown または sudo chmod でファイルの権限または所有権を変更します。

  • 「.swp」ファイルが存在する:

    • 原因:ファイルが別の Vim セッションで開かれています。

    • 解決策:他のターミナルでファイルを編集していないことを確認します。編集していない場合は、ll -a で .swp ファイルを見つけて削除し、ファイルを再度開きます。または、:recover を実行してスワップファイルから復元します。