Как я могу сделать C-p префиксным ключом Emacs для Devel :: PerlySense? - PullRequest
10 голосов
/ 21 июня 2009

Я только что установил Devel :: PerlySense 0,0180.

Я поместил в файл .emacs следующее:

 ; PerlySense
 (load "~/perly-sense")

 (global-unset-key "\C-p")

 (global-set-key (kbd "\C-p \C-d") 'perly-sense-smart-docs-at-point)

 (global-set-key (kbd "\C-p \C-g") 'perly-sense-smart-go-to-at-point)

Но теперь, когда я пытаюсь загрузить Perl-файл в emacs, перед его загрузкой я получаю следующую ошибку:

ошибка "Начинается последовательность клавиш C-p m f с префиксным ключом C-p "

Как я могу это исправить? Я новичок в Emacs, поэтому буду очень признателен за любую помощь в этом отношении.

Обновление:

Ссылка , предоставленная ysth , предлагает выполнить следующее:

 (use-local-map (make-sparse-keymap))
     => nil
 (local-set-key "\C-p" ctl-x-map)
     => nil
 (key-binding "\C-p\C-f")
     => find-file

 (key-binding "\C-p6")
     => nil

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

Когда я добавляю приведенный выше код в .emacs и запускаю emacs, я получаю ошибку:

void-variable =>

В чем здесь проблема?

Ответы [ 2 ]

25 голосов
/ 22 июня 2009

Четкий ответ на ваш вопрос таков:

(define-prefix-command 'perly-sense-map)
(global-set-key (kbd "C-p") 'perly-sense-map)
(define-key perly-sense-map (kbd "C-d") 'perly-sense-smart-docs-at-point)
(define-key perly-sense-map (kbd "C-g") 'perly-sense-smart-go-to-at-point)

Для получения дополнительной информации о том, что делается, ознакомьтесь с документацией для

В оригинальном сообщении вы смешали, используя kbd и более старую нотацию "\ C-p". Вы можете прочитать это большое руководство, в котором обсуждаются сочетания клавиш , в котором содержится тонна информации (больше, чем то, что вам, вероятно, нужно). Я считаю, что использование kbd является самым простым, вы просто передаете ему строку, которую увидите, когда справляетесь с ключом ( C-h k ).

5 голосов
/ 21 июня 2009

Emacs, по умолчанию, позволяет только определенным ключам быть префиксами (запуск многоключевых команд). Смотри http://www.gnu.org/software/emacs/manual/html_node/elisp/Prefix-Keys.html Вам необходимо создать раскладку клавиш и связать ее с C-p.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...