Fedoraを7か8に上げたあたりから、emacsのバージョンアップに伴って、Fundamentalモードでのタブキーの動作が変わってしまいました。タブを押すと、前行の空白位置に合うまで進むようになったんですよね。Text-modeとかならともかく、Fundamentalでやられると激しく気持ち悪いのは私だけ? 元通り、タブ位置(8,16,24,...)に飛んで欲しいので、ちょっと調べてみました。
elispのマニュアルによると、indent-line-function という変数によってタブキーの動作がモードごとに決まるようです。で、emacs -qで起動 → M-x fundamental-mode → M-: indent-line-function とかやってデフォルトを調べてみると、indent-relative という関数になっていることが判明。怪しい。マニュアルを引いてみると、
このコマンドは、空白でないまえの行のつぎの字下げ位置のコラムに 達するまで、ポイント位置に白文字を挿入する。
ということで、やはりこれが原因のようです。というわけで、.emacsに次のように書いておけばOKのようです。
(setq indent-line-function 'tab-to-tab-stop)
tab-to-tab-stopは、tab-stop-listというリストに入っている値のどれかまで字下げする、というモノ。ある程度フツーにtabを入れてくれるので、まあ良いかな、と。
追記
emacs 24?だと変な挙動になるので
(setq indent-line-function 'indent-to-left-margin)
のほうがいいらしい。
ちなみに、この設定を行ってもText-modeにするとindent-relativeになりますので、ある程度使い分けられます。Text-modeでも動作を変えるなら、
(add-hook 'text-mode-hook (lambda () (setq indent-line-function 'tab-to-tab-stop)))
などとメジャーモード用のフックを使えば良いでしょう。
CやLispなどのメジャーモードでは、別のTab動作が割り当てられていることも多いようですので、個別に対応する必要があります。
どうでもいいですが、私は下のようにCモードではLinuxライクなインデントをしてくれるようにしています。
(add-hook 'c-mode-common-hook '(lambda () (c-set-style "linux") (setq tab-width 8)))