Как определить новые команды в emacs

Я продолжаю забывать emacs терминологию для Выбора Все, таким образом, я хотел бы добавить новую команду emacs так, чтобы я мог ввести выбор M-x - все RET и иметь выполненный целый буфер метки.

Я пытался добавить это к своему .emacs файлу:

(defun выбор - все () (целый буфер метки))

или это:

(defun выбор - все () (интерактивный) (целый буфер метки))

Но они, кажется, не ставят имена в правильном "пространстве имен", чтобы быть доступом через M-x, как я получаю их в правильном пространстве имен?

Спасибо, - Shawn

2
задан 25.10.2013, 21:34

3 ответа

(interactive) говорит Emacs, что функция является командой, т.е. что функция может быть связана с ключом и выполнена с M-x. Так (defun select-all () (interactive) (mark-whole-buffer)) должен работать (но (defun select-all () (mark-whole-buffer)) не будет). Вы перезапускали Emacs или оценивали определение с C-M-x (eval-defun)? Что делает C-h f select-all RET показать? (Буфер справки должен начаться “с выбора - все - интерактивное”.)

Здесь, более простая альтернатива

(defalias 'select-all 'mark-whole-buffer)
10
ответ дан 08.12.2019, 04:36

Ну, это уже встроено:

M-x mark-whole-buffer

связанный с

C-x h

Но, для получения, что Вы хотите путем записи чего-то вторая реализация работает на меня очень хорошо, и я могу добраться до нее путем ввода M-x.

6
ответ дан 08.12.2019, 04:36

Тот с интерактивными взглядами как он корректен, и это работает на меня.... Вы не забывали перезагружать свой .emacs после определения его?

2
ответ дан 08.12.2019, 04:36

Теги

Похожие вопросы