tabの変わりにスペースを入れたい

tabの変わりにスペースを入れたいことなんてザラにあるとおもう。でも「tabキーが押されたら全部スペースにする」みたいにしてしまうと、tabが欲しいときに入れられなくなっちゃう。
そこでちょっと調べ物をしていたらいい方法*1。を発見。「タブの気持ちで半角スペース」tab分の半角スペースを入れてくれる。
せっかくなのでShift+Tabとかにバインドさせてみようと思ったらこれが思い通りに行かないらしく、また調べてたらいい方法*2が紹介されていた。これはShift+TabをF20が押されたことにして、F20をglobal-set-keyで指定して処理してやるという方法。

;;; タブの気持ちで半角スペース改
(set-extended-key-translate-table exkey-S-tab #\F20)
(defun insert-space-like-tab ()
(interactive)
(let ((tab (tab-columns (selected-buffer))))
(insert " " (- tab (mod (current-column) tab)))))
(global-set-key #\F20 'insert-space-like-tab)