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

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

記事の文字数:2715

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


スポンサーリンク

viコマンド(vim)とは

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

vimをインストールする(ない場合)

まず、vimコマンドがインストールされているか確認します。
以下のようにbash: vim: command not foundとなった場合は、まずvimをインストールします。

$ vim
bash: vim: command not found

Ubuntuの場合

Ubuntuの場合は、以下コマンドでインストールできます。

) パッケージ更新

sodo apt update

) vimインストール

sudo apt install vim -y

Areaを聞かれたので、5.Asiaを選択しました。

alt text

Time zoneを聞かれたので、78.Tokyoを選択しました。

alt text

インストールが完了したらvimを実行して、以下のようにエディタが開けばOKです。

alt text

確認したら、:q!でvimを終了してください。

基本操作

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

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

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

構文

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操作の流れの説明です。

ノーマルモードの説明

初期状態のモードで、コマンドモードや、 インサートモード・ビジュアルモードへの切り替えを行います。 各モードからノーマルモードに戻る際は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の操作をひとつ前に戻す。

コマンドモードの説明

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

保存と終了

: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どちらを指定しても変わりません。

まとめ

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


以上で本記事の解説を終わります。
よいITライフを!
スポンサーリンク
Scroll to Top