VB風行頭移動

VBやなんかのMS系の開発環境ではHomeで行頭移動する場合に一度インデント位置に移動してから行頭に移動する。動きとしてもう指がそれを覚えてしまっているので、その機能がないエディタだとインデント位置に移動しようとしてついHomeを押してからカーソルキーでシャカシャカと位置あわせを行わなくてはいけない。非常に煩わしいと思うのでとりあえずxyzzy用に関数を書いてみた。

(defun move-to-indentation-or-line-top ()
  "インデント位置に移動。もしインデント位置にいた場合は行頭移動"
  (interactive)
  (setf current-cursor-pos (current-column))
  (back-to-indentation)
  (if (= current-cursor-pos (current-column))
      (beginning-of-virtual-line))
  )

ちょっとづつLispの書き方を覚えてきた気がする。なんだか楽しい。