Переопределить «cmd» + «W» для уничтожения буфера в Aquamacs?

327
Schwern

В Aquamacs 3.2 я хочу переназначить cmd+, Wчтобы он убивал текущий буфер вместо закрытия кадра. Я использую Aquamacs в классическом стиле Emacs с одним окном, поэтому я закрываю буферы гораздо чаще, чем закрываю окна.

Я попробовал это по моему, .emacsбезрезультатно.

(global-unset-key [?\s-w]) (define-key global-map [?\s-w] 'kill-buffer) 

Я также попробовал вариант этого ответа, но он все еще убивает окно.

(defun kill-current-buffer () (interactive) (kill-buffer (current-buffer))) (global-unset-key (kbd "s-w")) (global-set-key (kbd "s-w") 'kill-current-buffer) 

Я также попытался вставить этот код, ~/Library/Preferences/Aquamacs Emacs/Preferences.elкак предложено в этом ответе .

Я подтвердил, describe-functionчто он загружен.

kill-current-buffer is an interactive Lisp function in `.emacs'.  It is bound to s-W.  (kill-current-buffer)  Not documented. 
1
Удалось ли вам установить, читаются ли какие-либо настройки предпочтений, которые вы можете добавить? JonathanS 9 лет назад 0
@JonathanS Да, `.emacs` и` ~ / Library / Preferences / Aquamacs Emacs / Preferences.el` определенно читаются, поскольку у меня есть другие предпочтения в них. Даже если я использую `eval-region` в коде, он не работает. Я проверил с помощью `description-function`, что он загружен. Schwern 9 лет назад 0

1 ответ на вопрос

1
Schwern

There are two things going on. First, Aquamacs has remapped the Mac OS X command key to alt. So it should be (global-set-key '[(alt w)] 'kill-current-buffer).

But that gives a warning because of the second thing, osx-key-mode has defined its own osx-key-mode-map. Emacs suggests to redefine that key in that keymap with define-key.

(defun kill-current-buffer () (interactive) (kill-buffer (current-buffer))) (when (boundp 'osx-key-mode-map) (define-key osx-key-mode-map '[(alt w)] 'kill-current-buffer)) 
Отлично. Как вы определили, что командный ключ OS X был переназначен на alt? JonathanS 9 лет назад 0
@JonathanS Я понял, что функция загружается, но проблема может заключаться в неправильной привязке клавиш. При поиске информации о привязках клавиш кто-то упоминал переназначение клавиши Command на Alt. Я попробовал это, и это сработало. Schwern 9 лет назад 0