コマンド | 意味 |
---|---|
C-x C-f | 指定したファイルを開く |
C-x C-b | バッファリスト一覧 |
C-x o | 2つのバッファ間のカーソル移動 (他のウィンドウへの表示切替) |
C-x 0 | バッファ表示を閉じる |
C-x 2 | ウィンドウの2分割化 |
C-x b | 編集バッファの切り替え |
C-spc | マークする |
M-w | マーク地点とカーストで囲まれた領域をメモリにコピー |
C-y | メモリ内容をカーソル位置にペースト |
以下のエディタ操作において,Emacsウィンドウ上段にあるメニュー(マウスによる操作)を使ってならない. あくまでもキーボード入力だけの操作を習得すること.
$ emacs &としてから,さらに C-x C-f によって指定したファイル ~/doc/edit.tex を開こう.
演習:ファイル ~/doc/edit.tex のためのバッファを開け(~/doc内にedit.texというファイルがなくてもかまわない)
C-x C-f を入力してミニバッファに次のように入力する.
--------------------------------------------------- Find file: ~/doc/edit.tex ---------------------------------------------------
以上の操作において,Emacsでは2つのバッファを開いている. Emacsを開くべきファイルを指定せずに起動したときに自動的に用意されるバッファ *scratch* と,C-x C-f でファイル edit.tex を読み込むために開いたバッファ webpage,tex(この場合,ファイル名とバッファ名が同じになっていることに注意する) の2つである.
同様に C-x C-f によってさらに別のバッファをEmacs内に用意することができる. このとき,ミニバッファに入力されるファイル名(ディレクトリパスも同時に指定する.これがバッファ名となる)に相当するファイルが実際に存在していれば,その内容がバッファに読み込まれるが,該当ファイルが存在しないときには,空のバッファが用意される(ただし,バッファ名は指定した通りにつけられている).
演習:ファイル ~/public_html/game.html のためのバッファを開け C-x C-f を入力してミニバッファに次のように入力する.
--------------------------------------------------- Find file: ~/public_html/game.html ---------------------------------------------------
さて,現在開いているバッファリストはEmacsコマンド C-x C-b によって確認することができる. すると,エディタウィンドウが2分されて分割ウィンドウとなり,次のようなメッセージが表示される.
MR Buffer Size Mode File -- ------ ---- ---- ---- . game.html 0 Fundamental /home/inform/stdnt98/b98765tj/public_html/game.html edit.tex 2345 TeX /home/inform/stdnt98/b98765tj/doc/edit.tex *scratch* 0 Lisp Interaction * *Buffer List* 293 Fundamentalこのとき,テキストカーソル■があるウィンドウ画面が編集対象である. この例では,バッファ名は Buffer 欄に表示されているように game.html, edit.tex そして *scratch* の3つである. これらが File欄に表示されているファイルに関連付けられているのである.
演習:C-x o を繰り返し入力することによってカーソル■が分割ウィンドウ間をいったり来たりすることを確かめよ.
ただし,バッファ表意をやめるだけで,バッファ内容はそのままの状態で残っている.
演習:バッファリストを表示している側の分割ウィンドウを閉じよ.
演習:今までの作業を復習せよ. バッファリストを表示させ,そのバッファリストウィンドウを閉じよ.
C-x 2 | ウィンドウ表示の2分割化 |
演習:現在のエディタ画面を2分割表示とせよ. その際に,モード行に表示されるバッファ名はどうなるか. 分割されたウィンドウ間でテキストカーソル■を交互に移動して編集可能なバッファを交換せよ. さらに,指定した分割ウィンドウ(上下のどちらか)にバッファリスト内の指定したバッファ内容を表示してみよ. そして,どちらかの分割ウィンドウを閉じてみよ.
多数のファイルを編集するために,複数のEmacsを起動することは完全な誤りである. 多数のファイルを同時に編集するときでも,1つのEmacsを起動してその内部に多数のバッファを開きながら作業することが正しい.確かに,同時に複数のウィンドウを何枚も表示しながら作業する方が分かりやすいのは事実だが,Emacsではそのような仕様にはなっていない. しかし,このEmacsのやり方(Emacsを使った作業のポリシー)に慣れてくると,いたずらに多数のウィンドウを開く(Windowsやmacintoshなどでの)やり方によりは簡素で極めて効率的なことが体感できる.
一枚のEmacsウィンドウを開いて,マウスを使わずに自在に編集などの仕事をこなせるようになることがUNIX使いの第一歩である. 確かに,そのためには修行をつまねばならないが,その価値は絶大である.
エディタ画面(1面のときに分割画面のときも)に別のバッファ内容を表示させる,つまり開いている多数のバッファリストから指定したバッファ内容をウィンドウに表示するためには C-x b によって次のようにミニバッファに開きたいバッファ名を指定する.
C-x b | Switch to buffer: (default *scratch*)バッファ名 |
演習:上の例で,開いているバッファ名が edit.tex, game.html, *scratch* であるとき, バッファedit.tex の内容をエディタウィンドウに表示せよ.
C-x b を入力して
------------------------------------------------- Switch to buffer: (default game.html) edit.tex -------------------------------------------------とすれば,バッファ名edit.texに対応した内容が表示される. 注意すべきことは
新たに作成しようとする(多数の)ファイルを,既存の(多数の)ファイルの部分部分をコピーしながら別の場所にペーストしながら作成する手法をコピー&ペースト,切り取りとって別の場所の貼り付けながら作成する手法をカット&ペースト)と呼ぶ. 両者の操作はほぼ同じである.
┏━━━━━━━━━━━━━━━━━━━━━━ ~/public_html/index.html <HTML> <HEAD> <TITLE>浦島田太郎のホームページ</TITLE> </HTML> <BODY> <トップページ> ようこそ情報太郎のホームページへ. <UL> <LI>故郷紹介 <LI>私の趣味 <LI>大学生活 </UL> 東京情報大学 情報学科 1年<BR> 情報太郎 (JYOUHO Taro)<BR> ご意見などはb98765jt@edu.tuis.ac.jp <H2>故郷紹介</H2> 私の故郷は xxxx です. ............ <H2>私の趣味</H2> 最近の私は xxx に熱中しています. .......... <H2>大学生活</H2> 所属しているサークルは ........ .......... </BODY> </HTML> ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━
まず,Emacsを起動して index.html を読み込む. さらにこれから作成・編集し保存するファイルのためのバッファを次のように3つ用意する.
Finf file: ~/public_html/hometown.htmlによってバッファ hometown.html を用意する.
Finf file: ~/public_html/hoby.htmlによってバッファ hoby.html を用意する.
Finf file: ~/public_html/studentlife.htmlによってバッファ studentlife.html を用意する.
こうして選られたファイルを改めてHTMLの規約に従ってWebページとして完全なものとするためにさらに加筆・編集を行うのである.