プログラミングに便利なワザ


mule で編集中のバッファにおけるカーソルのある行数を表示

M-x line-number-mode
毎回起動時に、自動的に行数表示を行なうようにするためには、.emacs の中に、

(setq line-number-mode t)
を入れておくとよい。

mule で編集中のバッファに対してインデントを正しく設定する

インデントを開始したい行の先頭にカーソルを持って行き、

ctrl+Space (Mark set と表示される)
インデントを設定したい最後の行にカーソルを持って行き、

M-x indent-region
これで美しい?(少なくとも見やすい)コーディングスタイルの出来上がり

mule の中でコンパイル & エラー発見

mode-compile という Emacs-lisp プログラムを、mule に組み込むと、mule の窓の中でコンパイル可能となり、かつ、コンパイルエラーのある場所に自動 的にジャンプできる。

手順

  1. ホームディレクトリに mule というディレクトリを作成
  2. ファイルのダウンロード(mode-compile.el)
  3. 上記ファイルを、mule ディレクトリ内に保存
  4. 下記の内容を、.emacs に追加

    ;
    ;; for mode-compile
    (autoload 'mode-compile "mode-compile"
      "Command to compile current buffer file dependently of the major mode" t)
    (global-set-key "\C-c\C-c" 'mode-compile)
    (autoload 'mode-compile-kill "mode-compile"
      "Command to kill a compilation launched by `mode-compile'" t)
    (global-set-key "\C-c\C-k" 'mode-compile-kill)
    
    (defconst cc-default-compiler
      "gcc"
      "*Default C compiler to use when everything else fails")
    
    (defvar cc-default-compiler-options
      "-g -O2 "
      "*Default options to give to the C compiler")
    
  5. 下記の内容を .cshrc に追加

    setenv EMACSLOADPATH /usr/local/lib/mule/19.28/lisp:~/mule
    
  6. source ~/.cshrc をコマンドラインで実行
  7. mule を再起動
  8. プログラムが完成したら、ctrl+c, ctrl+c を押す
  9. コンパイルコマンドが一番下に現れるので、Enterを押す
  10. mule の画面が半分に割れて下の窓でコンパイルが実行される
  11. Ctrl+x, ` を押せば、エラーのある行にカーソルがジャーンプ!!

mule を使っている時に、Ctrl + h で文字を削除したい

.emacs の中に、

(global-set-key "\C-h" 'backward-delete-char)
という行を入れれば良い。

Control と Caps_Lock を入れ換えたい!! ついでに、ESC と 半角/全角 キーも入れ換えたい(某国産パソコン出身者か!?キミは)

$HOME/.Xkeymap というファイルを作る(別に名前はなんでもいいけど)。その中身は、
keycode 66 = Control_L
keycode 49 = Escape
keycode 9 = Zenkaku_Hankaku
keycode 37 = Caps_Lock
add Lock = Caps_Lock
add Control = Control_L
とする。あとは、コマンドライン上で、
xmodmap .Xkeymap 
すればオッケー。この方法は、実習室のマシンにしか使えない。他のマシンで はキー定義が微妙に異なるから。

ログインする度に自動的に入れ換えを行ないたい場合は、

cp /usr/X11R6/lib/X11/xinit/xinitrc ~/.xsession
を実行したあと、自分のホームディレクトリに出来た .xsession の最後の行、
exec xterm -geometry 80x66+0+0 -name login
の前に、

xmodmap .Xkeymap 
を入れておくと良い。
akira@rsch.tuis.ac.jp