UnixやLinuxを扱う上で、ぜひ知っておいてほしいソフトウェアが「viエディタ」というテキストエディタです。
Windowsでいう「メモ帳」ですね。
Unix・Linuxはコマンドラインベースということもあり、「viの使い方がわからない」「viは使うのが難しい」と感じる人も少なくありません。
本記事では、viエディタの基本的な使い方から便利なコマンドまで、徹底解説します。
これからUnix・Linuxを扱う人、viエディタを使いこなせるようになりたいと考えている人は、ぜひ参考にしてください。
Unix/LinuxをVPSで利用するなら
ミライサーバー
\2週間無料・全プランSSD搭載/
ミライサーバーを無料で試す
目次
viエディタの基本的な使い方
まず、viエディタの基本的な使い方をご紹介します。
viエディタを起動する、終了するコマンド
viエディタはテキストエディタであり、ファイルにテキストを編集するのが主な機能です。
viエディタを起動する場合は、以下のコマンドを実行します。
- viの起動
$ vi <編集するファイル名>
編集するファイル名を入力しない場合、新規作成として無題で起動します。
また、編集するファイルを読取専用で開きたい場合は、以下のコマンドを実行します。
- viの起動(読取専用でファイルを開く)
$ view <参照するファイル名>
設定ファイルの内容を編集せず参照のみしたいときは、このように「view」コマンドを利用しましょう。
次に、viを起動しファイルを編集後、終了する場合のコマンドをご紹介します。
- 編集内容を保存せずに終了
:q!
- 編集内容を保存して終了
:wq
少なくとも、起動と終了を覚えることでviエディタを実際に使うことができます。
もし手元にviエディタを実行できる環境がある人は、コマンドを実際に使って試してみるとよいでしょう。
viエディタの「コマンドモード」と「入力モード」を理解しよう
viエディタを実際に起動して編集しようとしても、文字が入力されません。
これは、viエディタを起動した直後は「コマンドモード」で起動するためです。
viエディタには「コマンドモード」と「入力モード」の2つのモードがあることを理解しておきましょう。
コマンドモードでは、カーソルの移動の他文字の削除や検索、保存などが実行可能です。
入力モードでは、実際にテキストを入力できます。
- コマンドモードから入力モードに切り替える
コマンドモードから入力モードに切り替えるには「i」キーを入力します。
すると左下に「Insert」と表示され、入力モードに切り替わったことがわかります。
この状態で、ファイルを編集できます。
- 入力モードからコマンドモードに戻る
入力モードからコマンドモードに戻る場合には、ESCキーを入力します。
そうすると左下の「Insert」の文字が消え、コマンドモードであることがわかります。
コマンドモードで何らかのコマンドを実行して状況がわからなくなったときや、現在自分がコマンドモードなのか入力モードなのか分からなくなった場合は、ESCキーを何回か押しましょう。
そうすることで、起動直後のコマンドモードの状態に戻ります。
このように、viエディタは「コマンドモード」と「入力モード」を切り替えながらテキストを編集するツールです。
整理すると、viエディタを使ってファイル編集を行う手順は以下のようになります。
- vi エディタでファイルを開く
- コマンドモードから入力モードに切り替え
- ファイルを編集する
- 入力モードからコマンドモードへ切り替え
- 編集が終わるまで2~4を繰り返す
- 編集内容を保存をする/しない
- 終了
ここまで覚えれば、実際にviエディタでファイルの編集を行うことができますね。
viエディタのコマンドモードでよくつかうコマンド
コマンドモードでは、編集を効率的に行える便利なコマンドが多数あります。
その中でも、最低限知っておくべき基本的なコマンドをご紹介します。
コマンドモードは多数のコマンドを実行できますが、まずはここから覚えていきましょう。
分類 | コマンド | 操作内容 |
---|---|---|
入力モードへ切替 | i | カーソル位置から入力モードへ切替 |
I | 行の先頭から入力モードへ切替 | |
a | 次のカーソル位置から入力モードへ切替 | |
A | 行の末尾から入力モードへ切替 | |
o | カーソルの下の行から入力モードへ切替 | |
O | カーソルの上の行から入力モードへ切替 | |
カーソル移動 | l(→) | カーソルを右へ移動 |
h(←) | カーソルを左へ移動 | |
k(↑) | カーソルを上へ移動 | |
j(↓) | カーソルを下へ移動 | |
^ | カーソルを行の先頭へ移動 | |
$ | カーソルを行の末尾へ移動 | |
gg | カーソルをファイルの先頭に移動 | |
G | カーソルをファイルの末尾に移動 | |
ファイルの保存 | :q! | 保存せずに終了 |
:wq | 保存して終了 | |
:w | 上書き保存 | |
:w ファイル名 | 指定したファイル名で保存 | |
:wq ファイル名 | 指定したファイル名で保存して終了 |
viエディタの便利なコマンド
viエディタはシンプルなテキストエディタですが、多機能であることも知られています。
シェルスクリプトをはじめ、プログラムのソースコードをviエディタで編集するときは、コピー・貼り付け、検索や置換といったコマンドが使えると効率よく開発が進められます。
ここからは、viエディタの便利なコマンドを紹介します。
切り取り・コピー/貼り付け
viエディタでは「Ctrl+C」「Ctrl+V」といった、Windowsで利用できるショートカットによる文字列のコピーや貼り付けはできません。
代わりに、コマンドモードで用意されているので、覚えておきましょう。
分類 | コマンド | 操作内容 |
---|---|---|
切り取り | x | 1文字切り取り |
dd | 1行切り取り | |
<行数>dd | 指定した行数切り取り | |
dG | カーソル行からファイルの最終行まで切り取り | |
コピー | yy | 1行コピー |
<行数>yy | 指定した行数コピー | |
貼り付け | p | カーソル行の下に貼り付け |
P | カーソル行の上に貼り付け |
viエディタでは、マウスでコピー対象の範囲を選択せずとも、対象範囲の行数を入力することで切り取りやコピーが簡単にできます。
そのため、慣れてくるとWindowsのメモ帳よりも速く編集が行えるようになります。
検索・置換
viエディタもコマンドモードで文字列の検索や置換が可能です。
特に同じ文字列を一括修正する必要なときに大変便利ですので、ぜひ覚えておきましょう。
分類 | コマンド | 操作内容 |
---|---|---|
検索 | /<文字列> | 文字列を検索 |
?<文字列> | 逆方向に文字列を検索 | |
n | 次の検索候補 | |
N | 前の検索候補 | |
置換 | :s/置換対象文字列/置換後文字列 | 最初に合致した文字列を置換 |
:s/置換対象文字列/置換後文字列/g | 行全体の対象文字列を置換 | |
:%s/置換対象文字列/置換後文字列/g | ファイル全体の対象文字列を置換 |
切り取りやコピーではコマンドを入力してもどこにも表示されませんが、検索や置換など一部のコマンドでは、コマンドモードで入力した内容が左下に表示されます。
実際に実行してどのような動きになるか確認するとよいでしょう。
viエディタのカスタマイズ
viエディタは、カスタマイズも可能です。
カスタマイズできる項目の一部をご紹介します。
コマンド | 操作内容 |
---|---|
set number | 行番号を表示 |
set ruler | ルーラー(行・列番号)を表示 |
set autoindent | 改行時に自動インデントする |
set nowrap | 折り返し表示しない |
syntax on | off | カラー表示のON|OFF |
特に行番号やルーラーの表示は、プログラムでエラーが出た場合にエラー箇所をすばやく確認するのに大変便利です。
これらのカスタマイズも効果的に使いましょう。
まとめ
本記事では、viエディタについて解説しました。
ここに記されていることを一度に全て覚えるよりも、実際にviエディタを使いながら覚えるのが一番効率的です。
viに使い慣れると、作業効率が大きく改善されます。
viエディタを使うときは、本記事の内容をぜひ活用してください。
UnixやLinuxのVPSならミライサーバー
ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。
ミライサーバーのVPSでは、高速処理が可能なSSDを全プランに搭載しています。
また、UbuntuやDebian、AlmaLinuxなどの豊富なラインアップから、OSを選択することができます。
2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。