プログラミング演習1 Tips¶
ここでは,プログラミング演習にとどまらない,先を見据えたプログラミング環境構築のためのTipsを紹介する.
※受講生の皆さんへ,TAは,必ずしもこのページの内容を熟知していない可能性があります.
基本知識¶
この基本知識に書いてあるぐらいの内容は,演習1が終わるころには身についているはずです.
工学基礎実験実習のことも思い出してください.
C-xは,Ctrlキーを押しながら,xキーを押す,という意味M-xは,Altキーを押しながら,xキーを押す,という意味様々な箇所で,TABキーを押すことで入力補間ができる(ファイル名補間,コマンド補間,etc.)
Linux¶
Linuxの端末では:
ls -alは,ディレクトリ内のファイル一覧を表示cdは,カレントディレクトリの移動 (change directory)/は,ディレクトリの区切り記号.eop1/db-sample.cは,eop1というディレクトリ内のdb-sample.cというファイル,という意味.~は,自分のホームディレクトリ.は,カレントディレクトリ..は,親ディレクトリ.例えば,~/eop1/../db-sample.cは,~/db-sample.cと同じ.
mvは,ファイルやディレクトリの移動/リネーム (move)rmは,ファイルの削除 (remove)
Linuxの端末上で何かコマンドを実行しているとき:
C-c強制終了C-z一時停止fgコマンド (foreground) で,実行を再開する.bgコマンド (background) で,バックグラウンドで実行する.(参照:&)jobsコマンドで,実行中のコマンドの一覧を表示する.
C-d入力ストリームを閉じる(=キーボードからの入力を終了する)
Emacs¶
$ emacs . &
# あるいは
$ emacs my-program.c &
画面最下部のエコーエリアにも注意しつつ...
C-gキャンセル ※困ったらC-gで,大体はキャンセルできるC-x C-s保存C-x C-c終了C-s検索
Gcc¶
$ gcc -Wall -o my-program my-program.c
LaTeX¶
$ edu-uplatex reportA_09B22xxx.tex
自習環境でedu-uplatexがない場合は,
$ uplatex reportA_09B22xxx.tex
$ uplatex reportA_09B22xxx.tex
$ dvipdfmx reportA_09B22xxx.dvi
uplatexの実行時にエラーが発生し,?の様に何らかの入力を求められる状態になったときは,xと回答すると,終了できる.
Emacsのカスタマイズ(1)¶
基本設定¶
~/.emacsというファイルがある場合は,消すか,中身を~/.emacs.d/init.elに書き写すべし.教育用計算機のページを読み,まずは最低限の設定をしておこう
余裕がある人は,以下もやっておくとさらに便利・・・かも?
- Emacsのカスタマイズ
3.5.2. 推奨設定
3.5.3. LaTeX執筆用の設定
Emacs - 禁断の(?)CUA-mode¶
Menuバーの Options --> Use CUA Keys にチェックを入れると,一部のキーバインドが変更され,Windowsでよく使う操作が利用できます.いわゆる,Ctrl + z, x, c, v あたりのキーです.
GUIで変更した設定は,Options --> Save options で保存すると,次回以降も有効なままとなります.
直接設定を書く場合は,以下の通りです.(GUIで設定変更すると,set-variables の中に書かれます.)
(cua-mode t)
CUA mode では,以下のキーバインドが有効になります.
やりたいこと |
Emacs標準キー |
CUA mode有効時 |
|---|---|---|
文字列の選択(1) |
Shift押しながら矢印キーで移動 |
(同左) |
文字列の選択(2) |
|
(同左) |
コピー |
|
|
カット |
|
|
ペースト |
|
|
アンドゥ |
|
|
よく使うC-xやC-cを上書きしており,ドキッとするかもしれません.ですが,これらは,文字列選択状態でのみ,効果を発揮するので,C-x C-cで問題なく終了できます.
とはいえ,キーバインドを大幅に変えた環境に慣れてしまうと,未カスタマイズの環境で極端に作業効率が落ちがちなので,要注意です...(なので,本ページの見出しには禁断の(?),とつけています)
頑張らない Emacs の使いこなし術¶
Emacsには多くのショートカットキーがあり,カスタマイズすることで,より便利になります(なるそうです?).例えば,遠隔地のサーバにsshでログインしてプログラムを書いて・・・なんて場合には,GUIでマウスは使えません.
キーボード入力のみでの作業が必須になります.
が・・・覚えるのは大変ですよね.まずは,いろんな機能を使いこなすことから初めて,少しずつショートカットキーを覚えていきましょう.
Emacsを起動しよう¶
ファイル名を指定して起動,もいいですが,こんなコマンドを覚えておくと,便利かも?
$ emacs . & # .というディレクトリ(=カレントディレクトリ)を開く
# あるいは
$ emacs eop/ & # eopというディレクトリを開く
Emacsでディレクトリ名を指定して起動すると,ディレクトリ内のファイル一覧表示(ls -alに似た表示)が開かれます.ファイル名をクリックするか,カーソルを動かして Enter キーを押せば,ファイルを開けます.
(ディレクトリ一覧のバッファは残っています.バッファが何か?は後述.)
&を付けそびれた・・・という人は,焦らずに.端末内でC-z,そのあとで,bgコマンドを実行しましょう.
プログラミングの作業中,Emacs のフレーム(アプリウィンドウ)を閉じる必要は,ほぼありません.
バッファと表示窓(ウィンドウ)¶
WindowsやMac的な意味での『アプリのウィンドウ』は,Emacsでは「フレーム」と呼びます(名前は覚えなくてもいい).
Emacsでファイルを開くと,「バッファ」内にファイルの内容が書き出されます.
「バッファ」の中身は,「ウィンドウ」に表示させることで,内容を編集することもできるようになります.
File -> Close で,「バッファ」が閉じます.「ウィンドウ」は閉じません.
逆に,「ウィンドウ」を閉じても,「バッファ」は閉じません.
画面下部に注目しましょう.ファイル名が見える,色がついたエリアがモードラインです.
![]()
Figure 12 Emacsのモードライン¶
ファイル名を左クリックすると,次のバッファに移ります.(
C-x b)右クリックで,前のバッファ.
ヘルプの mouse-1 は左クリック,mouse-2は中クリック,mouse-3は右クリックの意味.
モードラインの何もないところを右クリックすると,その表示窓を閉じます.(
C-x 0)閉じたい表示窓の下にあるモードラインを右クリック,です.
上述の通り,バッファは閉じていません(ややこしいですが,裏では開いたまま,ということです.)
「フレーム」内に,2つの「ウィンドウ」で,同じファイルを開くことも,今回のようなプログラミング作業では有効です.
File --> New Window Below (
C-x 2) あるいは,on Right (C-x 3) を選ぶ同じファイルが2つの「ウィンドウ」で開くので,例えば・・・
1つ目のウィンドウでは,関数定義を表示
2つ目のウィンドウでは,関数を利用する場所を表示
数百行もあるソースコードを持つファイルに対して,画面スクロールをして上下のコードを見比べるのではなく,機能を上手く活用して,楽をしましょう.
Semantic minor mode の有効化¶
ちょっと動作が重いのですが,皆さんの開発を手助けしてくれるはずです.
Tools --> Source Code Parsers (Semantic) を有効にする
Menuバーに,Development が追加されます.
Show Tag Summaries: 関数を利用する記述をするときに,エコーエリア(最下部)に注目!ヒントが現れます.
Show Tag Completion: 関数や変数名の補間をしてくれます.例えば,strまで打ち込んで少し待ってみましょう.エコーエリアにも注目.Enterで確定,TAB で切り替えです.
Decorate Tags: 関数や構造体の定義場所が,ちょっと目立つようになります.
Speedbar の表示¶
Semantic mode との連携になりますが,こちらも便利.M-x speedbarで,表示されます(M-x speedぐらいまで入力してから,TABで補完しましょう)
Speedbar 上の空いた場所を右クリック--> Displays から,Files か Buffers のお好みで選んでおきましょう.
ファイル切り替えやバッファ切り替えが,一覧を見ながらマウス操作できるので,楽になるはず.
Speedbar 上のファイル名の上で,右クリック Speedbar --> Expand File Tags (=) を選択
Variables や Functions が表示される場合は,その左の + アイコンをクリックする
Figure 13 Emacs の Speedbar.ファイル名の上で = を押すと...¶
LaTeX の設定とショートカット¶
上述の別ページで説明した設定をしていれば,メニューの TeX から以下の処理が見つけられるはず.
C-c C-fタイプセット (PDF作成)C-c C-vプレビュー
これはショートカットを覚えよう.作業が早くなります.
まとめ¶
Semantic + Speedbar に関する情報は,CEDET で調べると,より高度な利用方法が見つけられると思います.自分なりの方法を身に着けておきましょう.