今日は、 UNIX での標準的なテキスト・エディタである Emacs を利用してテキストファイルを作成/編集できるようになることを目指します。 Emacsにおける日本語入力の方法についても学びます。
(プレーン)ファイル、およびディレクトリの読み、書き、実行可能状態をそれぞれ、 r, w, xで示すのでした。
すなわち、
文字 | 数値 | 内容 |
---|---|---|
r | 4 | ファイルの内容を視る見る(readable) |
w | 2 | ファイルの内容を変更する。生成・削除はできない。(writable) |
x | 1 | ファイルをプログラム(コマンド)として実行する。(executable) |
ディレクトリにかんしては、
文字 | 数値 | 内容 |
---|---|---|
r | 4 | ファイル名の一覧の表示。ファイル名を見る。(readable) |
w | 2 | ディレクトリの内容の変更。 新規ディレクトリ・ファイルの生成。 既存ディレクトリ・ファイルの改名・削除。(writable) |
x | 1 | ディレクトリ・サーチ。ディレクトリ自身の詳細内容を知る。ディレクトリ 内のファイルへのアクセス。(executable) |
$ cd ~mmr14135/public_html/johoWeb $ ls -al $ drwxr-xr-x 8 mmr14135 teacher 8192 4月 14 14:23 2014 . drwxr-xr-x 3 mmr14135 teacher 4096 4月 14 13:32 2014 .. ............................ $ -rwxr-xr-x 1 mmr14135 teacher 14408 4月 14 14:23 2014 unix03.html ...............................
$ chmod 640 unix03.html $ ls -al unix03* -rw-r----- 1 mmr14135 teacher 14408 4月 14 14:23 2014 unix03.html
このとき、Webページを「再読み込み」 して、どうなるかを実験してみてください。
Not Found The requested URL was not found on this server.と来るはずです。
$ chmod 644 unix03.html「再読み込み」すると、イケますね。
$ chmod 750 . $ ls -al . -d $ drwxr-x--- 8 mmr14135 teacher 8192 4月 14 14:23 2014 .ここの操作は、もちろん、筆者のみがおこないます。 受講者は「再読み込み」してWebページの反応を観てください。
$ chmod 754 .受講者は「再読み込み」してWebページの反応を観てください。 (vi) つぎは
$ chmod 751 .受講者は「再読み込み」してWebページの反応を観てください。 通常
$ chmod 755 .という設定になっているとおもいます。
自分以外の誰にも「読み/書き/実行・サーチ」の権限がないディレクトリを、 自分のホームディレクトリ下に作成せよ。そのディレクトリの名前は「Documents」とする。
$ cd ・・・ホームディレクトリに移動し $ mkdir Documents $ ls -l drwxr-xr-x 2 mmr14135 teacher 4096 4月 20 23:17 2014 Documents $ chmod 700 Documents $ ls -l Documents $
drwx------ を確認する。今後はDocuments以下で作業を行う。
$ cd Documents $
起動
ターミナルから Emacs を起動するには、
$ emacs & $これは新規ファイルで、未だファイル名はついていない。
このファイルに、次のように入力しよう
abcde fghij klmno pqrst uvwxy z
ここではファイル名を指定しないでEmacsを起動したので、 ファイル名の所が*scratch*になっていることを確認せよ。
保存 C-x C-s
いま入力したのを名前をつけて保存するには、「C-x C-s」で保存する。
(練習)「C-x C-s」して、「alphabet.txt」として保存しよう。
File to save in: ~/Documents/
と、一番下の長細い窓(ミニバッファ)に出てくるので
File to save in: ~/Documents/alphabet.txt
と追記してエンターキーを押す。
別名保存 C-x C-w
(練習) 「C-x C-w」すると、Write file:~/Documents/と一番下の長細いまどに出てくるので
別の名前alphabet2.txtを打ち込んでリターンキーをおす。
ファイル名の所がalphabet2.txtとなっているのを確認し、次のように編集する。
aabbccddee ffgghhiijj kkllmmnnoo ppqqrrsstt uuvvwwxxyy zz
この編集を保存するため「C-x C-s」する
開く C-x C-f
(練習)もう一度 「alphabet.txt」を編集しよう。Emacsからファイルを開くには
「C-x C-f」とすると、
Find file:~/Documents/
と出てくるので
Find file:~/Documents/alphabet.txt
してエンターキーを押す。
あるいは、ファイル名を追記しないで、エンターキーを押すとDocuments下のファイル一覧が
-rw-r--r-- 1 mmr14135 teacher 32 4月 20 23:22 2014 alphabet.txt -rw-r--r-- 1 mmr14135 teacher 44 4月 20 23:23 2014 alphabet2.txt ...........
と出てくるので、ファイル名の所にカーソルを持っていってエンターキーを押すことでファイルを開くこともできる。ファイル名をうろ覚えのときに便利。
ファイル名を指定してemacsを起動
あるいはemacsを起動するときに、ファイル名を指定することもできる。$ emacs alphabet.txt & $
カーソル移動
矢印キー(←、↑、→、↓)を使ってカーソルを移動する以外に、 徐々に使えるようになると便利。便利な機能がいろいろある。
●
一文字進むforward-char : C-f
●
一文字戻るbackward-char : C-b
●
次の行へnext-line : C-n
●
前の行へprevious-line : C-p
●
行頭へ移動 move-beginning-of-line : C-a
●
行末へ移動move-end-of-line : C-e
●
goto-line : M-g g or M-g g
●
次のページscroll-up : C-v
●
前のページscroll-down : M-v
●
ファイルの最初beginning-of-buffer : M-<
●
ファイルの最後end-of-buffer : M->
(練習)今開いている「alphabet.txt」の中を、 矢印キーの代わりにC-f,b,n,pでカーソルを移動したり、C-a,eで行頭、行末に移動してみよう。
取り消し(UNDO)
もし、間違った変更をしてしまったら、
取り消し(undo)コマンドでその変更を取り消すことができます。
●
undo :
C-/ or
C-_ or
C-x u
デリート
普通にデリートキーでも文字を消せますが、次のようなやりかたもあります。
●
delete-char : C-d
●
delete-backward-char : DEL(Backspace) or C-h
コピー、カット(kill)、ペースト(yank)
●
カーソル以降をカット kill-line : C-k
●
ペースト yank : C-y
(練習)「alphabet.txt」の内容を、現在の
abcde
fghij
klmno
pqrst
uvwxy
z
から、
abcde
fghij
klmno
pqrst
uvwxy
z
abcde
fghij
に変更してみよう。 やり方は、 最初の状態からC-k,C-k,C-k,C-k(Controlキーを押しながらkを4回押す)して、
klmno
pqrst
uvwxy
z
まで持っていく。この時点でカットされた
abcde fghij
はEmacsが覚えているので、C-yでペーストする
abcde
fghij
klmno
pqrst
uvwxy
z
覚えているのは何度でもペーストできるので、カーソルを最後の文字zの後ろに持っていって C-yでペーストする。これで変更できるはず。
検索、置換
●
検索 search-forward : C-s
●
後方検索 isearch-backward : C-r
●
query-replace : M-%
●
query-replace-regexp : C-M-%
・置換するときは、Space key
・置換しないときは、n と押す。
・一括置換するには、!を押せばよい。
実際の編集作業は、上で示したキーバインドを利用して行います。 関数名を指定して、実行するには
とします。この方法で、キーバインドが定義されていない関数も実行できます。 たとえば、M-x function-name
M-x tetris
Emacs で日本語を入力する方法は複数有りますが、ここでは Anthy+Anthy.el を使います。尚、具体的な操作に関してはRGL (PDF版) pp 62--81。応用編にも さらにすすんだ記述があります。
半角/全角|漢字キー、または C-¥ と入力すると、Emacs のモード行に「Anthy: あ」と表示され、ローマ字かな変換モードに入ります。この状態でもう一度C-¥ と入力するともとに戻ります。ローマ字かな変換モードでキーを打つと平仮名が入力されます。適当に入力したところでSpace barを押すと漢字に変換されます。
変換と確定間の操作とすると、一番下の細長いところに、M-x help
Type one of the options listed, or SPACE or DEL to scroll:
とでるので、t を入力。
あとは画面の指示に従って下さい。