Клавиши ido-completion-map не работают при включении ergoemacs

При использовании ergo emacs по какой-то причине M-l и M-j (forward-char и back-char соответственно) не работают должным образом в минибуфере (в режиме ido).

Я попытался установить карту ido-completion со следующим:

(add-hook 'ido-setup-hook
  (lambda ()
    (define-key ido-completion-map (kbd "M-k") 'ido-next-match)
    (define-key ido-completion-map (kbd "M-i") 'ido-prev-match)
    (define-key ido-completion-map (kbd "M-l") 'ido-next-match)
    (define-key ido-completion-map (kbd "M-j") 'ido-prev-match)))

но эти, кажется, не прилипают.

Кажется, у меня проблема, аналогичная этому человеку: привязка ido-mode замаскирован глобальным набором ключей, но ни одно из решений не работает для меня

Любая помощь будет очень признательна

С уважением Нимай


person nimms    schedule 18.09.2014    source источник


Ответы (2)


Хотя инструкции в начале ido.el предлагают использовать:

;; Customization
;; -------------
;;
;; Customize the Ido group to change the Ido functionality.
;;
;; To modify the keybindings, use the ido-setup-hook.  For example:
;;(add-hook 'ido-setup-hook 'ido-my-keys)
;;
;;(defun ido-my-keys ()
;;  "Add my keybindings for ido."
;;  (define-key ido-completion-map " " 'ido-next-match)
;;  )

Недавно я обнаружил, что использование ido-common-completion-map было более удачным при использовании функции переключения кадров - оригинальный постер может заменить свои собственные предпочтительные сочетания клавиш вместо m-tab и/или m-S-tab:

(add-hook 'ido-setup-hook 'ido-my-keys)

(defun ido-my-keys ()
  "Add my keybindings for ido."
  (define-key ido-common-completion-map (kbd "<M-tab>") 'ido-next-match)
  (define-key ido-common-completion-map (kbd "<M-S-tab>") 'ido-prev-match) )
person lawlist    schedule 18.09.2014

Я столкнулся с проблемой сохранения, я использую Emacs 24.4 с ergoemacs-mode-5.14.7.3 (я не использую последнюю версию ergoemacs, потому что у нее проблемы со скоростью. См.: ошибка github). После долгих поисков я наконец нашел этот коммит github и заставил его работать. добавив приведенный ниже код в мой файл инициализации emacs:

после включения ergoemacs-mode:

(when ido-mode
  (global-set-key [remap ido-magic-forward-char] 'ido-next-match)
  (global-set-key [remap ido-magic-backward-char] 'ido-prev-match))

Надеюсь, это поможет, спасибо!

person muyifeng    schedule 27.12.2014