警告

本資料は参考情報として提供されています。内容についてのご質問には必ずしもお答えできない可能性がございます。

8. テキストエディタ

CLI環境にも、慣れさえすればGUI環境と同等かそれ以上に自在な編集ができるテキストエディタが用意されています。普段はデスクトップ環境でテキストファイルの編集を行う場合でも、簡易な編集がターミナル上でできるだけで作業効率が上がります。また、GUIを必要としないので、ネットワーク越しの作業でも回線への負荷が少ないというメリットもあります。

ここでは、Linux環境で最も広く使われているテキストエディタとして、VimとEmacsを簡単に紹介します。また、より初心者向けなエディタとしてはnanoエディタがあります。

注釈

本資料では使われることの多い機能に絞って紹介します。実際の機能はコマンドのヘルプやmanコマンドを参照してください。

8.1. Vim

Vim(あるいはvi)は、ここで紹介するエディタの中でも操作が特殊ですが、どのLinux環境にもほぼ必ずインストールされているため、一度覚えればほとんどのCLI環境でテキスト編集が行えるようになるメリットがあります。

Vimはvim(もしくはvi)コマンドで起動します。特定のファイルを編集する場合は、コマンドに続けてパスを指定します。

注釈

元々はviというエディタがあり、Vimはその発展版として開発されました。その名残でVimしかインストールされていない環境でも、vivimエイリアスに設定されています。

Vimを起動すると、画面に指定したファイルの内容と、移動可能なカーソルが表示されますが、この状態ではテキストを編集することができません。これはVimが複数のモードを切り替えて作業をする仕様になっているためです。

Vimの主なモード

モード

説明

ノーマルモード

カーソルの移動やコピー・ペーストなどの操作が行える

挿入モード

テキストを入力するモード

コマンドラインモード

ファイルの保存やVimの終了などエディタの機能を呼び出すためのモード

起動時はノーマルモードです。挿入モードに入るにはiを押します。このとき、左下に-- 挿入 --もしくは-- INSERT --と表示されます。挿入モードではカーソルの位置に文字を入力できるようになります。Escで挿入モードを終了します。

エディタの終了やファイルの保存といった操作にはコマンドラインモードを使います。ノーマルモードで:を押すと、左下に:とカーソルが表示された状態になります。この:に続けてコマンドを入力することで、エディタの機能を呼び出します。

Vimの主なコマンド

コマンド

説明

q

Vimの終了

q!

編集内容を破棄して終了

w

編集内容をファイルに保存

wqは続けて実行できます。例えば編集内容を保存じてVimを閉じるには、ノーマルモードの状態から、:wqEnterとタイプします。また、コマンドラインモードを中断してノーマルモードに戻るには、Escを2回入力します。

ノーマルモードで/?を押した場合も、カーソルが左下に移動します。これに続けて検索したい入力すると、前方、後方検索が行えます。nで次の検索結果にジャンプします。

最後に、ノーマルモードでよく使われる操作を簡単に紹介します。

ノーマルモードの主な操作

入力

機能

kjhl

カーソルを上下左右に移動

wb

カーソルを1単語だけ前後に移動

0

行頭に移動

^

空白以外の行頭(例えばインデントの先頭)に移動

$

行末に移動

Ctrl+u,Ctrl+d

半画面分上下に移動

Ctrl+b,Ctrl+f

1画面分上下に移動

dd

1行削除

u

Undo(直前の操作を戻す)

Ctrl+r

Redo(Undoした操作を取り消す)

>>

行頭にタブを挿入する

<<

行頭のタブを一段削除する

また矢印キーやPgUpHomeのようなキーにも対応しています。

より詳しくVimを学びたい方はvimtutorコマンドを実行することで、Vimのチュートリアルを見ることができます。

8.2. Emacs

EmacsはVimと並んで有名なCLI環境のテキストエディタです。Vimがカーソルの移動や機能の実行と、実際のテキスト入力をモードで分けて行うのに対し、Emacsでは前者を修飾キーを使ったキーボードショートカットに近い操作に対応させることで、テキスト入力も自然にできるようになっています。

Emacsの起動はemacsコマンドで行います。起動直後からカーソルの位置にテキストの入力が可能です。

Emacsでよく使われるコマンドを簡単に紹介します。ここではCtrlAlt(メタキー)を使う入力をC-xM-fのように表記します。例えばC-x C-cCtrl+xCtrl+cを続けて入力する(このときCtrlは一旦離しても離さなくてもよい)という意味です。

Emacsの主なコマンド

入力

機能

C-x C-c

Emacsを終了

C-g,Esc Esc Esc

コマンドの中断

C-x C-s

編集内容を保存

C-p,C-n,C-b,C-f, もしくは矢印キー

上下左右に移動

M-f,M-b

カーソルを1単語だけ前後に移動

C-a

行頭に移動

C-e

行末に移動

M-BackSpace

1単語分削除

M-v,C-v

1画面分上下に移動

C-k

カーソルから行末までを削除

C-x u

Undo(直前の操作を戻す)

C-s

前方検索

C-r

後方検索

Emacsにもチュートリアルが用意されており、C-h tで見ることができます。

ヒント

EmacsではCtrlを多用しますが、Windowsの標準的なキーボード配列ではCtrlが押しにくくなっています。Ctrlはターミナルの操作でもよく使うため、キーバインドの変更(例えばCapsLockとの入れ替え)を検討してもいいでしょう。