【Linux】viコマンド(vim)の使い方(保存、終了など)

【Linux】viコマンド(vim)の使い方(保存、終了など)

Amazonのアソシエイトとして、ITナレッジライフは適格販売により収入を得ています。

記事の文字数:2,177 / 総アクセス数:235 views

「vim」はLinuxで幅広く利用されているテキストエディタです。「vim」でファイルを開いて、編集・保存するまでのやり方や、カーソル移動・コピー&ペースト、置換などのコマンドを紹介します。

viコマンドは、UNIX/Linux系オペレーティングシステムで広く使用されているテキストエディタで、 vimはviの機能を拡張したものです。

viコマンド(vim)の基本操作

vi/vimの操作はモード毎に代わり、以下の4つのモードがあります。

  • ノーマルモード: 初期状態で各モードに切り替える。
  • コマンドモード: 保存や終了をする。
  • インサートモード: テキストを入力するモード。
  • ビジュアルモード: テキストを選択するモード。

vimの基本構文

以下コマンドでファイルを開きます。

vi [ファイル名]

または

vim [ファイル名]

vimの使い方流れ

vim操作の簡単な例を紹介します。
任意のフォルダで以下を実施します。(test.txtファイルはなくても問題ありません。)

vim test.txt

以下のようにvimが起動することを確認してください。 (現在ノーマルモード)

alt text

iキーを押下し、-- INSERT --(インサートモード)となることを確認します。

alt text

文字列を入力できるようになったので、以下例ではvim test.と入力しました。

alt text

escキーを押下し、編集を終了します。(インサートモード⇒ノーマルモード)

alt text

:でコマンドモードに切り替えて、wqを入力し、Enterキーを押下します。

alt text

vimが閉じることを確認してください。
alt text

catでファイル内容がvim test.となっていることを確認できました。

$ cat test.txt
vim test.

以上が、vim操作の流れの説明です。

vimノーマルモードの説明

初期状態のモードで、コマンドモードや、 インサートモード・ビジュアルモードへの切り替えを行います。 各モードからノーマルモードに戻る際はescキーを押下します。

以下にvi/vimの基本的なコマンドをいくつか紹介します。

カーソル移動(上下前後)

  • h :左に移動。
  • j :下に移動。
  • k :上に移動。
  • l :右に移動。

※上下左右のカーソル移動は矢印キーでも可能。

カーソル移動(先頭・末尾)

  • 0 :行の先頭に移動。(インデント無視)
  • ^ :行の先頭に移動。(インデント考慮)
  • $ :行の末尾に移動。
  • + :下の行の先頭に移動。
  • - :上の行の先頭に移動。

カーソル移動(単語)

  • w :単語の先頭へ進む。
  • W :(空白区切りで)単語の先頭へ進む。
  • b :単語の先頭に戻る。
  • B :(空白区切りで)単語の先頭に戻る。
  • e :単語の末尾に進む。
  • E :(空白区切りで)単語の末尾に進む。

ページ移動

  • Ctrl + b :一画面分上へ移動する。
  • Ctrl + f :一画面分下へ移動する。
  • Ctrl + u :半分画面上へ移動する。
  • Ctrl + d :半分画面下へ移動する。
  • { :段落ごとに上へ移動する。
  • } :段落ごとに下へ移動する。
  • gg :ファイルの先頭へ移動する。
  • G :ファイルの末尾へ移動する。

コピー、ペースト、削除

  • yy :行をコピーする。3yyのように指定すると3行コピーできる。
  • p :ペーストする。
  • dd :行を削除する。3ddのように指定すると3行削除できる。

前に戻る

  • u :操作をひとつ前に戻す。
  • ctrl + ruの操作をひとつ前に戻す。

vimコマンドモードの説明

:/でコマンドモードに切り替えます。

保存と終了

:w :ファイルを保存。
:q :保存しないで終了。
:q! :保存しないで強制終了。
:wq :ファイルを保存して終了。
:wq! :ファイルを保存して強制終了。

検索と置換

/pattern :patternを前方検索。nで次を検索。Nで前に戻る。
?pattern :patternを後方検索。nで次を検索。Nで前に戻る。
:s/old/new :現在行の old を new に置換。(1つ目のヒットが対象)
:s/old/new/g :現在行の old を new に置換。(行のすべてが対象)
:%s/old/new/g :ファイル全体の old を new に置換。

インサートモードの説明

テキストを入力するモードです。
ノーマルモードから ia キー等を押すとインサートモードに入ります。

インサートモードになるキーの一覧

  • i :カーソル前にテキストを挿入する場合
  • a :カーソル後にテキストを挿入する場合
  • I :行頭にテキストを挿入する場合
  • A :行末にテキストを挿入する場合
  • o :下に行を追加し、テキストを挿入する場合
  • O :上に行を追加し、テキストを挿入する場合

初心者の内は最低限iが使えれば問題ありません。

ビジュアルモードの説明

テキストを選択するモードです。
ノーマルモードから v キーを押すとビジュアルモードに入ります。

使用例:範囲選択してコピーや削除を行う。

  • v: カーソル移動で範囲選択
  • y: 範囲選択した文字列をコピー
  • p: 範囲選択した文字列をコピーした文字列で上書き
  • x: 範囲選択した文字列を削除

viとvimどちらを使うべきか

vimはviの上位互換です。
viとvimのリンクを辿ると、ほとんどの場合、最終的にはvimを参照しているかと思います。

実際に確認してみてください。

Debianの環境で確認したサンプルは以下の通りです。

# viのパスを確認する
$ which vi
/usr/bin/vi
$ ls -l /usr/bin/vi
lrwxrwxrwx 1 root root 20 Aug 14 2023 /usr/bin/vi
-> /etc/alternatives/vi
$ ls -l /etc/alternatives/vi
lrwxrwxrwx 1 root root 18 Aug 14 2023 /etc/alternatives/vi -> /usr/bin/vim.basic
# vimのパスを確認する
$ which vim
/usr/bin/vim
$ ls -l /usr/bin/vim
lrwxrwxrwx 1 root root 21 Aug 14 2023 /usr/bin/vim -> /etc/alternatives/vim
$ ls -l /etc/alternatives/vim
lrwxrwxrwx 1 root root 18 Aug 14 2023 /etc/alternatives/vim -> /usr/bin/vim.basic

どちらも/usr/bin/vim.basicを参照していることが確認できました。
結論として、vi/vimどちらを指定しても変わりません。

vimコマンドまとめ

vi/vimはシンプルながら高機能なテキストエディタです。初めて使うときは少し取っつきにくいかもしれませんが、何度も練習を重ねることで、効率的かつ正確にテキスト編集ができるようになります。ぜひ活用してみてください。

Linuxユーザにお勧めの本

新しいLinuxの教科書 第2版

難易度
実用性
読みやすさ

一生モノの基礎知識が身につく定番書です。

ゼロからわかる Linuxコマンド200本ノック―基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!

難易度
実用性
習得度

アウトプット重視で記憶に定着しやすい。反復練習でLinux操作が自由自在になります。

エンジニア1年生のための世界一わかりやすいLinuxコマンドの教科書

難易度
実用性
読みやすさ


以上で本記事の解説を終わります。
よいITライフを!

Linuxユーザにお勧めの本

新しいLinuxの教科書 第2版

難易度
実用性
読みやすさ

一生モノの基礎知識が身につく定番書です。

人気記事


記事を評価

Thanks!
目次
Scroll to Top