ソフトウェア設計及び演習用の班Wiki

……操作の簡単なまとめ

バッファ

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した値を忘れた」
    と思う度にファイルをさかのぼって定義を見直すのは面倒な作業,さらに複数ファイルを使ってプログラムを作っているときは「この関数を定義したファイルは?」となり,さらに面倒
    →マクロ,関数などがどのファイルにあるかという情報を,タグファイルというファイルに保存しておき,Emacsから必要なときに瞬時に参照したい情報を見ることができる

タグテーブルの作成

  • タグテーブル…複数のファイルで構成されるプログラムが,どのように各ファイルに分割されているのか記述したもので,プログラムを構成するファイル名,そのファイルに入っている関数の名前やファイル内の位置の一覧
  • ソースファイルがあるディレクトリで,(% etags ファイル名)を実行
  • プログラムを複数ファイルを使って作成している場合は,(% etags *.h *.c)を実行 →そのディレクトリに TAGS というファイル生成
    →プログラムで定義されている関数や変数の名前などが記録
補足
  • もしプログラムのソースを複数ディレクトリを使って作成している場合は,(% find . -name "*.[ch]" -print | xargs etags)でTAGS を作成 →現在のディレクトリの下にある全ての *.c *.h ファイルを使ってTAGSを作成可能

タグの機能使用

M-. 指定した関数を定義したファイルを開き,関数を定義している場所を表示
C-x 4 . 指定した関数を定義したファイルを別ウィンドウに開き,関数を定義している場所を表示
  • はじめてタグの機能を使う場合,タグテーブルの場所を聞かれるが,通常はデフォルト使用

コンパイル

コンパイルの実行

M-x compile ミニバッファに「Compile Command: 」と表示,実行したいコマンドを入力するとコンパイル実行

エラー処理

C-x ` (バッククォート) 次エラーに対応する箇所へジャンプ

シェルコマンドの実行

M-! ミニバッファ内でシェルコマンドを指定すると,そのコマンドの実行結果を表示(shell-command)
M-x shell サブシェルを起動.Emacsバッファを介して,コマンドの入出力を対話的に行う


最終更新日:2013/11/28 13:41:14