
スポンサーリンク
viコマンド(vim)とは
viコマンドは、UNIX/Linux系オペレーティングシステムで広く使用されているテキストエディタで、 vimはviの機能を拡張したものです。
vimをインストールする(ない場合)
まず、vimコマンドがインストールされているか確認します。
以下のようにbash: vim: command not found
となった場合は、まずvimをインストールします。
$ vimbash: vim: command not found
Ubuntuの場合
Ubuntuの場合は、以下コマンドでインストールできます。
) パッケージ更新
sodo apt update
) vimインストール
sudo apt install vim -y
Areaを聞かれたので、5.Asia
を選択しました。
Time zoneを聞かれたので、78.Tokyo
を選択しました。
インストールが完了したらvim
を実行して、以下のようにエディタが開けばOKです。
確認したら、:q!
でvimを終了してください。
基本操作
vi/vimの操作はモード毎に代わり、以下の4つのモードがあります。
- ノーマルモード: 初期状態で各モードに切り替える。
- コマンドモード: 保存や終了をする。
- インサートモード: テキストを入力するモード。
- ビジュアルモード: テキストを選択するモード。
以下コマンドでファイルを開きます。
構文
vi [ファイル名]
または
vim [ファイル名]
vim使い方(例)
vim操作の簡単な例を紹介します。
任意のフォルダで以下を実施します。(test.txtファイルはなくても問題ありません。)
vim test.txt
以下のようにvimが起動することを確認してください。 (現在ノーマルモード)
i
キーを押下し、-- INSERT --
(インサートモード)となることを確認します。
文字列を入力できるようになったので、以下例ではvim test.
と入力しました。
esc
キーを押下し、編集を終了します。(インサートモード⇒ノーマルモード)
:
でコマンドモードに切り替えて、wq
を入力し、Enterキーを押下します。
vimが閉じることを確認してください。
catでファイル内容がvim test.
となっていることを確認できました。
$ cat test.txtvim 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 + r
:u
の操作をひとつ前に戻す。
コマンドモードの説明
:
や/
でコマンドモードに切り替えます。
保存と終了
: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 に置換。
インサートモードの説明
テキストを入力するモードです。
ノーマルモードから i
やa
キー等を押すとインサートモードに入ります。
インサートモードになるキーの一覧
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/vilrwxrwxrwx 1 root root 20 Aug 14 2023 /usr/bin/vi-> /etc/alternatives/vi$ ls -l /etc/alternatives/vilrwxrwxrwx 1 root root 18 Aug 14 2023 /etc/alternatives/vi -> /usr/bin/vim.basic
# vimのパスを確認する$ which vim/usr/bin/vim$ ls -l /usr/bin/vimlrwxrwxrwx 1 root root 21 Aug 14 2023 /usr/bin/vim -> /etc/alternatives/vim$ ls -l /etc/alternatives/vimlrwxrwxrwx 1 root root 18 Aug 14 2023 /etc/alternatives/vim -> /usr/bin/vim.basic
どちらも/usr/bin/vim.basicを参照していることが確認できました。
結論として、vi/vimどちらを指定しても変わりません。
まとめ
vi/vimはシンプルながら高機能なテキストエディタです。
初めて使うときは少し取っつきにくいかもしれませんが、
何度も練習を重ねることで、効率的かつ正確にテキスト編集ができるようになります。
ぜひ活用してみてください。
以上で本記事の解説を終わります。
よいITライフを!