Редактировать: А, извините, мой ответ не был уместным.
Во-первых, dired-x добавляет привязки к карте основного режима (карта с цифровым режимом), а все карты второстепенного режима имеют приоритет над основной картой режима.
Во-вторых, мое предположение о том, что ваш ns-win
использовал вспомогательный режим, также может быть недействительным. Я действительно должен был сказать вам, чтобы вы сначала связались с этим (вы всегда должны ссылаться на нестандартные библиотеки).
Google предлагает использовать глобальную раскладку ключей, в этом случае он никогда не должен переопределять устаревшую карту, но также и то, что она использует супер, а не мета как ключ-модификатор, поэтому я совсем не уверен, что я ищу в версии, которую вы используете.
Если ваш ns-win
действительно предоставляет второстепенный режим, то самым простым вариантом является, возможно, сближение привязки второстепенного режима с пользовательской функцией, которая проверяет основной режим, а затем либо вызывает функцию оригинала, либо функцию dired-x, если это необходимо.
Вы можете использовать подход Emacs key binding fallback, чтобы минимизировать количество допущений. Ваш тест будет (eq major-mode 'dired-mode)
.
Оригинальный ответ; на самом деле не имеет отношения к вопросу:
Недостаточный приоритет карты памяти контролируется порядком записей в minor-mode-map-alist
, и это зависит от порядка загрузки библиотек.Самый последний загруженный режим имеет самый высокий приоритет (новые записи добавляются в начале списка).
См. https://stackoverflow.com/a/5340797/324105 для примера использования этого алиста для того, чтобы дать конкретный приоритет режима (в вашем случае вы, скорее всего, захотите использовать eval-after-load
для выполнения теста, так как это одноразовый).
В качестве альтернативы вы можете просто принудительно загрузить/потребовать обе библиотеки в нужной последовательности. Emacs занимает дробное дольше, чтобы начать, но вам не нужно беспокоиться о том, чтобы возиться с alist.
Я бы предложил использовать любой подход, с которым вам удобно.
Это необходимо? dired-x.el уже имеет (определение-ключ dired-mode-map "\ M-o" 'dired-omit-mode). – Calaf
Тогда я не понимаю, о чем вы спрашиваете. Какую функцию следует вызывать M-o? –
Мой выбор слов был, возможно, не очень хорошим. Я отредактировал вопрос, чтобы прояснить его. – Calaf