テキスト編集用エディタの種類はたくさんあります。ここは教科書によく例題に出る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! | ファイルに保存せずに終了 |