!!バッファ
|| C-x b | 直前のバッファと切替
|| C-x C-b | バッファ一覧の表示
|| C-x k | 現在のバッファを閉じる
!!ウィンドウ
|| C-x 0 | カーソルがあるウィンドウを消去
|| C-x 1 | カーソルがあるウィンドウを残し、他ウィンドウ消去
|| C-x 2 | 現在のウィンドウを上下2分割
|| C-x 3 | 現在のウィンドウを左右2分割
|| C-x o | 別ウィンドウにカーソル移動
!!フレーム
|| C-x 5 2 | 新規フレームを作成し,現在のバッファを表示
|| C-x 5 o | 他フレームへ移動
|| C-x 5 0 | 現在のフレーム削除
|| C-x 5 f | 新規フレームを作成し,そこで指定したファイルを開く
|| C-x 5 b | 新規フレームを作成し,そこで指定したバッファを表示
!!!CC mode
!!モード
例
* Cプログラムを編集するのはC mode
* テキストを編集するのはtext mode
* Makefileを編集するのはmakefile mode
!モード(メジャーモード)は,主にファイルの拡張子で決定
* 拡張子が c や h ならC mode
* 拡張子が txt ならtext mode
* ファイル名が Makefile や makefile なら makefile mode
!各モードには,その種類のファイルを編集するための色々な機能がある。
例)C mode
* 適切に字下げ(インデント)
* ファイル内を移動する便利なコマンド
etc...
!!現在のモード
* 現在利用しているモードは,モードライン(Emacs下部にある灰色の部分)に表示
!CC modeで使える便利な機能
|| C-c C-q | 現在編集中の関数全体をインデント
|| M-a | カーソルが1 statementずつ戻る
|| M-e | カーソルが1 statementずつ進む
|| C-M-a | 関数の先頭へ移動
|| C-M-e | 関数の末尾へ移動
!!便利なモード:省略表示(hs-mode)
* 長い if-else 文があるときに便利で,if文のthen節を編集している途中で、else節の中身が見たくなるようなとき,長いif文だと,else の中身を閲覧するためにカーソルを移動させるのは面倒なので,then節を「省略」して表示
|| M-x hs-minor-mode | マイナーモードをhs-mode(Hide-Show モード)に変更
* 変更後以下のコマンド使用可
|| C-c @ C-h | 現在のブロックを省略表示
|| C-c @ C-s | 現在のブロックを通常表示
|| C-c @ C-c | 現在のブロックの表示を通常/省略表示切替
|| C-c @ C-M-h | すべて省略表示
|| C-c @ C-M-s | すべて通常表示
!!タグ
タグって?
プログラムを作るとき,
「この関数の定義を見直したい」
「前に#defineした値を忘れた」
と思うことが度々あります.その度にファイルをさかのぼって定義を見直すのは結構面倒な作業になります. さらに複数のファイルを使ってプログラムを作っているときは「この関数を定義したファイルはどれだっけ?」ということになり,さらに面倒になります.
タグ(TAG)を使うと,こうした面倒から解消されます. マクロ,関数などがどのファイルにあるかという情報を,タグファイルというファイルに保存しておき,Emacsから必要なときに瞬時に参照したい情報を見ることができるようになります.
タグテーブルの作成
タグテーブルとは,複数のファイルで構成されるプログラムが,どのように各ファイルに分割されているのか記述したものです. これは,プログラムを構成するファイル名,そのファイルに入っている関数の名前やファイル内の位置の一覧です.
ソースファイルがあるディレクトリで,次のコマンドを実行します.
% etags ファイル名
プログラムをたくさんのファイルを使って作成している場合は
% etags *.h *.c
実行すると,そのディレクトリに TAGS というファイルができます。 このファイルには,プログラムで定義されている関数や変数の名前などが記録されています。
補足
もしプログラムのソースを複数のディレクトリを使って作成している場合は,以下のようにして TAGS を作ります。
% find . -name "*.[ch]" -print | xargs etags
これで現在のディレクトリの下にある全ての *.c *.h ファイルを使ってTAGSを作ることができます.
タグの機能を使ってみる.
以下の2つの機能を使ってみよう.
M-. 指定した関数を定義したファイルを開き,関数を定義している場所を表示
C-x 4 . 指定した関数を定義したファイルを別ウィンドウに開き,関数を定義している場所を表示
はじめてタグの機能を使うときは,タグテーブルの場所を聞かれるが, 先ほど作ったファイル(TAGS)をしてすれば良い.通常は,デフォルトのままで良い(つまり,そのままリターンを押せばよい).
コンパイル
コンパイルの実行
作成したプログラムのコンパイルはEmacsから実行すると便利。 「M-x compile」とすると,ミニバッファに「Compile Command: 」と表示されます。ここで実行したいコマンドを入力するとコンパイルを実行できます。
エラー処理
Emacsからコンパイルする利点はコンパイルエラーを処理するときです.
C-x ` (バッククォート) 次のエラーに対応する箇所へジャンプする
このコマンドを次々に実行して,エラー箇所をチェックすることができます.
シエルコマンドの実行
Emacsからコマンドを実行できます.
M-! ミニバッファ内でシェルコマンドを指定すると,そのコマンドの実行結果を表示してくれる (shell-command).
M-x shell サブシェルを起動.Emacsバッファを介して,コマンドの入出力を対話的に行うことができる