Я делаю то же переключение, что и Трей, но по умолчанию вместо отступа, а не до начала строки.Требуется немного больше кода, потому что нет никакой известной мне функции «в начале отступа».
(defun smart-line-beginning ()
"Move point to the beginning of text on the current line; if that is already
the current position of point, then move it to the beginning of the line."
(interactive)
(let ((pt (point)))
(beginning-of-line-text)
(when (eq pt (point))
(beginning-of-line))))
Это, вероятно, позволит вам продолжать использовать Ctrl - a и пусть он делает то, что вы хотите чаще всего, при этом все еще имея возможность легко получить встроенное поведение.