テキストエディタ

テキスト編集用エディタの種類はたくさんあります。ここは教科書によく例題に出るNanoとViを説明します。

また誤った変更で元のファイルに戻れなく、困っていることが多発するので、編集のまえに、バックアップすることがお勧めします。

元のファイルのバックアップ

バックアップは単純にcp コマンドを使いましょう。

$ cp filename.txt filename.bak

そうすると、修正後ファイルの差分は確認できる。

$ diff filename.txt filename.bak

誤った変更し、元のファイルに戻りたい場合、

$ cp filename.bak filename.txt

Nano

nanoはPicoと呼ばれるエディタのクローン実装系になるのだが、比較的学習コストの低いエディタ。

nanoの使い方は簡単だ。コマンドとしてnanoを実行する時に、引数としてファイルパスを指定するだけでよい。メモ帳のようなエディタしか使ったことがないのであれば、nanoは自然と利用できるエディタになっていると思う。

左下に「^X Exit」という表示が確認できると思うが、これはCtrl-Xというキーを押すと終了処理が行われることを意味している。Ctrl-Xとは、Ctrlキーを押しながらXキーを押すという処理だ。Ctrl-Xキーを押すと、上記の画面のように、ファイルの編集内容を保存するかどうかをYesまたはNo、Cancelの形で尋ねられる。それぞれY、N、Ctrl-Cが対応しており、Yを押せば保存と終了、Nを押せば保存せずに終了、Ctrl-Cを押せばキャンセルが実施されることになる。

コマンド

以下のようなコマンド(キー操作)が使えます。

 
コマンド キー操作 内容
^ F control + f 次の文字に移動
^ B control + b 前の文字に移動
^ スペース control + スペース 1単語先へ移動
M- スペース esc を押して スペース 1単語前へ移動
^ P control + p 前の行にに移動
^ N control + n 次の行にに移動
^ A control + a 現在行の先頭に移動
^ E control + e 現在行の最後に移動
^ V control + v 次のページに移動
^ Y control + y 前のページに移動
M- \ esc を押して\ ファイルの先頭へ移動
M- / esc を押して/ ファイルの末尾へ移動
^ G control + g ヘルプを表示
^ X control + x 終了
^ O control + o 保存
^ K control + k カーソルのある行をカット
^ U control + u ^ K でカットした行をペースト
^ R control + r カーソル位置に別のファイルを挿入
^ W control + w 検索
^^ control + ^ マーク(選択範囲の指定)

「^ *」は control キーを押しながら * というキー(小文字)を押すという意味(コマンド)です。

「M- *」は esc キーを押してから * というキーを押すという意味(コマンド)です。

 

Vi

一方、Linuxでメモ帳に相当するエディタがviだ。実際にはVimと呼ばれるvi系のエディタが使われていることが多いので、Vimで説明することにする。

メモ帳と比べると、Vimの操作はかなり難しい部類に入るだろう。まず、メモ帳にはモードという概念がないが、Vimにはモードという概念がある。

モード

最初に、少なくとも次の3つのモードを理解しておかなければならない。

モード 内容
ノーマルモード すべてのモードの基本となるモード。カーソルを移動させることができるほか、文字の削除やコピー&ペーストなどが行える。モードの基本であり、モード間を移動する場合はいったんノーマルモードに移動してから、別のモードに移動する
挿入モード 文字を入力するモード。Vimではメモ帳のように文字の削除やカーソルの移動も行える
コマンドラインモード 置換、削除、追加など命令を使って編集や操作を行うモード。保存や終了などもこのモードから行う

モードを移動する方法は次の表は理解しやすいかもしれない。

操作 モード 操作
挿入モード
↑ i ↓ ESC
ノーマルモード
↓ : ↑ ESC
コマンドラインモード

ノーマルモード

モード キー 内容
ノーマルモード w カーソルを1つ次の単語の先頭へ移動させる
ノーマルモード b カーソルを1つ前の単語の先頭へ移動させる
ノーマルモード e カーソルを1つ次の単語の末尾へ移動させる
ノーマルモード ge カーソルを1つ前の単語の末尾へ移動させる
ノーマルモード W カーソルを1つ次の単語の先頭へ移動させる(記号も単語の一部をみなす)
ノーマルモード B カーソルを1つ前の単語の先頭へ移動させる(記号も単語の一部をみなす)
ノーマルモード E カーソルを1つ次の単語の末尾へ移動させる(記号も単語の一部をみなす)
ノーマルモード gE カーソルを1つ前の単語の末尾へ移動させる(記号も単語の一部をみなす)
ノーマルモード 0 カーソルを行頭へ移動させる
ノーマルモード $ カーソルを行末へ移動させる
ノーマルモード ^ カーソルを行の文章の先頭へ移動させる

コマンドラインモード

モード 操作 内容
コマンドラインモード w ファイルに保存。操作後はノーマルモード
コマンドラインモード q 終了
コマンドラインモード wq ファイルに保存してから終了
コマンドラインモード q! ファイルに保存せずに終了