【超初心者向け】Vim(Vi)でなんとかファイル編集する方法
投稿日:2020年8月29日 更新日:
Vim (Vi)というのはテキストエディターの1つで、使い慣れると非常に効率的なコーディングや文章作成ができます。
UbuntuやDebian(旧Raspbian, 現Raspberry Pi OSも同様)などの多くのLinuxで基本的に初めからインストールされています。
しかしはじめて触る人にとっては訳が分からず触りたくないという気持ちになると思います。
本記事ではそんな人のために、最低限使うための方法、プラスアルファで最低限使えると便利かも、というコマンドを紹介します。
Viの拡張版であるVimを中心として記述していますが、Viでも基本は同じです。
起動方法
LinuxやMacのターミナルで、
$ vi {ファイル名}
と入力すると、ファイルを開いた状態でVim (またはVi)が起動します。
上記のコマンドで入力した*{ファイル名}*のファイルが存在しない場合は、新規で作成されます(そのあとVim内で保存しなければファイルは破棄されます)。
Vimはテキストエディターなので、上記のコマンドでファイルの中身が表示されるはずです。
Vimの最低限の基本
4つのモード
Vimの操作を難解に感じさせる大きな要因は、複数のモードの存在だと思われます。
Vimには以下の4つ(解釈によっては3つ)のモードが存在します。
1. ノーマルモード:
- エディターを開いた初期はこの状態。コマンドでカーソルの移動やコピー&ペースト等多くの操作ができる。
文字の入力は基本的にはできない。 - 他の3つのモードからはEscキーを押すとノーマルモードに戻る。
2. 挿入(インサート)モード:
- キー入力した文字を書き込めるモード。
- ノーマルモードでiキーを押すと挿入モードになる。
3. コマンドモード:
- ファイル操作やエディターの表示設定等のコマンドが入力できるモード。
- ノーマルモード時に:キーでコマンドモードになる。
- 最初に :(コロン) がついているコマンドは、コマンドモードでのコマンドだと思ってよい。
ノーマルモードの一部と解釈することもできる。
4. ビジュアルモード:
- 複数の文字や行、列に対してカーソルを広げ、一度に選択できるモード。
操作する範囲が視覚的にわかる。 - ノーマルモードでvキーを押すとビジュアルモードになる。
はじめてVimを触る初心者は、基本的に挿入モードで操作し、ファイルの保存やエディターの終了時にコマンドモードを使う、というスタンスが良いかもしれません。
今回、ビジュアルモードはほとんど扱いません。
触っている間にわけがわからなくなったら、とりあえずEscキーを連打すればノーマルモードに戻れるはずです。
本当に最低限の操作
Vimでファイルをとりあえず開いた、という状態ではノーマルモードになっています。
しかしある程度コマンドを覚えないとノーマルモードの良さはわかりません。
とはいえとりあえずテキストエディターとして使いたい、文字を入力、編集したい、という人もいると思います。
そういう人は、ファイルを開いてすぐiキーを押して挿入モードになってしまいましょう。
挿入モードではカーソルキーによる移動やバックスペースによる削除も可能です。
挿入モードでテキストの編集が完了したら、
挿入モード →Esc→ ノーマルモード →:→ コマンドモード
と切り替えて、ファイルの保存&Vimの終了をすれば、最低限テキストエディターとして使うことができるはずです。
ファイルの保存&Vimの終了は、:キーでコマンドモードに入りwq(wのあとにqを入力) → Enterです。
このとき保存せずに終了する場合は、:キーでコマンドモードに入りq! (qのあとにShift+1キーを押す) → Enterです。
Vimを使う最低限の流れ
- Vimでファイルを開く(ノーマルモードの状態)
- iキーを押す(挿入モードへ移行)
- テキストを編集する
- Escキーを押す(ノーマルモードへ移行)
- Vimの終了
- 保存する場合::、w、qと順に入力し、Enterを押す(保存して終了コマンド
:wq
<Enter>を入力) - 保存しない場合::、q、Shift+1の順に入力し、Enterを押す(強制終了コマンド
:q!
<Enter>を入力)
- 保存する場合::、w、qと順に入力し、Enterを押す(保存して終了コマンド
本当に最低限のコマンド
本当に最低限の操作で使用したコマンドをまとめます。
※最初に :(コロン) が付くコマンドはコマンドモードでの入力になるので、最後にEnterキーを忘れないようにする必要があります。
コマンド | 操作 |
---|---|
i | 挿入モードへ |
<Esc> | ノーマルモードへ |
:wq <Enter> | 保存して終了 |
:q! <Enter> | 保存せず終了 |
まず覚えるべき初心者向けコマンド
上の4つのコマンドで、最低限テキストエディターとして使用することができると思います。
しかしそれだけでは、Vimはただの手間のかかるだけのエディターでメモ帳のがまだましだ、という感想を持つでしょう。
Vimが便利だと思うようになるには、いくつかコマンドを覚えていく必要があります。
しかし一度に大量のコマンドを覚えることは難しいので、個人的によく使っている基本的なコマンドをピックアップして紹介します。
コマンドの表記について
以下に記すコマンドはすべて、ノーマルモードの時に入力するコマンドとなります。
そのためコマンドに対応するキー入力をすればよいですが、下記に注意ください。
- 文字が2つ以上続くコマンド(例
gg
): アルファベットを続けて押す(例 gキーを2回押す)。 - 大文字または記号の入ったコマンド(例
$
): 大文字や記号を入力するつもりで、Shiftキーを同時に押しながらキー入力を行う(例 Shiftキーと4キーを同時に押す)。 - Ctrl- が入ったコマンド(例
Ctrl-r
): キーを同時に押す(例 Ctrlキーとrキーを同時に押す) - :(コロン)から始まるコマンド(例
:wq<Enter>
): コマンドモードでのコマンドになるため、最後にEnterキーを押すのを忘れずに(例 :, w, q, Enterを順に押す)。
カーソルの移動
コマンド | 操作 | |
---|---|---|
h | 左へ | 一文字分移動※ |
j | 下へ | |
k | 上へ | |
l | 右へ | |
0 | 行頭へ | 一気に移動 |
$ | 行末へ | |
gg | 一番上の行へ | |
G | 一番下の行へ |
※ノーマルモードの時、カーソルキーでも移動できますが、h, j, k, lキーでの移動になれると、キーボード中央付近から手を動かさずに済むため便利。
コピー、ペースト
コマンド | 操作 |
---|---|
yy | カーソル上の一行コピー(ヤンク) |
p | カーソルの下の行に貼り付け(プット) |
yyp
で一行コピペできます。
コピーコマンド、ペーストコマンドについては、下記に詳しく述べています。
>> Vim (Vi)でコピー&ペーストするコマンドまとめとエディタ外部間で行う方法
取り消し、繰り返し操作
コマンド | 操作 |
---|---|
u | 直前に行った操作を取り消す(undo) |
Ctrl-r | 取り消した操作を元に戻す(redo) |
. | 直前に行った操作を繰り返す※ |
※挿入モードを使った操作は"挿入モードに入ってからノーマルモードに戻るまでの動作"を、1回の操作として扱われる。
検索
コマンド | 操作 |
---|---|
/ {キーワード}<Enter> | キーワードを検索する※ |
n | 次にキーワードがヒットする場所に移動する(上から) |
N | 次にキーワードがヒットする場所に移動する(下から) |
※ 検索するときは、キーワード入力後にEnterキーが必要。
削除
コマンド | 操作 |
---|---|
x | 一文字削除 |
dd | 一行削除 |
まとめ
Vimはコマンドを覚えて慣れてくるととても効率的なテキストエディターです。
しかしそうなるためには、少しずつコマンドを覚え、使っていく必要があります。
とくに最初は、モードという概念が混乱を招くと思います。
Vimにまだまだ慣れていない初心者は、
- Vimを開いたらまず挿入モードへ
- テキストを編集
- ノーマルモードに戻り、保存&終了
という最小限の操作からはじめて、少しずつノーマルモードでのコマンドを試していけばよいと思います。
下記によく使うコマンドをまとめましたので、もっとVimのコマンド覚えたい方はどうぞ。
>> Vimで便利な小技(よく使うコマンド集)
もっとたくさんのコマンドを一覧で見たい方も下記へどうぞ。
>> 【動画あり】Vimのコマンドを一覧にまとめてみた