Как оказалось, ErgoEmacs использует два файла для определения привязки клавиш.Одним из них является основной файл ergoemacs-mode.el , а другим - выбранная вами раскладка клавиатуры (например, ergoemacs-layout-us.el ).Последний документ создает константу, которую первый использует для создания привязки клавиш.Поэтому, пока я думал, что дублирую привязку клавиш, я на самом деле менял константу, которая впоследствии использовалась для этой цели.
Решение:
В ergomacs-mode.el:
;; Move to beginning/ending of line
(define-key ergoemacs-keymap ergoemacs-move-beginning-of-line-key 'move-beginning-of-line)
(define-key ergoemacs-keymap ergoemacs-move-end-of-line-key 'move-end-of-line)
(define-key ergoemacs-keymap ergoemacs-move-beginning-of-line-key2 'move-beginning-of-line) ; new
(define-key ergoemacs-keymap ergoemacs-move-end-of-line-key2 'move-end-of-line) ; new
В ergoemacs-layout-us.el:
;; Move to beginning/ending of line
(defconst ergoemacs-move-beginning-of-line-key (kbd "M-h"))
(defconst ergoemacs-move-end-of-line-key (kbd "M-H"))
(defconst ergoemacs-move-beginning-of-line-key2 (kbd "C-a")) ; new
(defconst ergoemacs-move-end-of-line-key2 (kbd "C-e")) ; new