読者です 読者をやめる 読者になる 読者になる

C-aで「行頭」と「インデントを飛ばした行頭」を行き来する

js2-modeのc-aの動作,と言えば分かる人には分かりやすいと思う。
C-aで、インデント文字を飛ばした行頭に戻りたい! - subpop - subtechelispを参考に,というか1文字改変しただけです。("^[ \t]*$" → "^[ \t]+")

(global-set-key "\C-a" 'beggining-of-indented-line)
(defun beggining-of-indented-line (current-point)
  "インデント文字を飛ばした行頭に戻る。
ただし、ポイントから行頭までの間にインデント文字しかない場合は、行頭に戻る。"
  (interactive "d")
  (if (string-match
       "^[ \t]+$"
       (save-excursion
         (buffer-substring-no-properties
          (progn (beginning-of-line) (point))
          current-point)))
      (beginning-of-line)
    (back-to-indentation)))

js2-modeの実装をパクるのが一番手っ取り早かった気もした。