Запустите Perl-код прямо в Emacs - PullRequest
5 голосов
/ 03 октября 2010

На Emacs на компьютерах в школе мы можем использовать 'F5' для запуска выбранного фрагмента кода Perl.Однако, когда я пытаюсь сделать это дома, это терпит неудачу.Я установил Emacs и Activeperl на мой компьютер с Windows7.

Всякий раз, когда я пытаюсь запустить фрагмент кода, я получаю ошибку «F5 не определено».Однако, когда я смотрю в файл .Emacs, я вижу, что функциональная клавиша F5 правильно связана с функцией perl-eval.Сегодня днем ​​это сработало, поместив (defalias 'perl-mode 'cperl-mode) в мой файл .Emacs, но когда я попытался написать код этим вечером, я снова получил ошибку 'f5 не определено'.

Кто-нибудь, кто может мне помочь с этим вопросом?Я знаю, что могу запустить свой Perl-код с помощью инструмента cmd, но гораздо проще, когда я могу запускать прямо из моего Emacs:).

Ответы [ 3 ]

3 голосов
/ 03 октября 2010

Похоже, ваш .emacs действителен, но может быть не в том месте.

Чтобы проверить, где .emacs должно быть сделано:

М-х getenv RET ДОМ RET

Который должен показывать что-то вроде: (windows xp)

C:\Documents and Settings\YourName\Application Data\

(или windows7)

C:\Users\YourName\Application Data\

Если это то же местоположение, что и .emacs, добавьте сообщение отладки в конец файла .emacs. например,

(message " >------------< This is the one >------------< ") 

И перезапустите Emacs и посмотрите в буфер *messages*.

Если отображается отладочное сообщение, привязка ключа должна быть доступна, проверьте ее с помощью C-h k F5

Сообщите нам результаты этих испытаний.

2 голосов
/ 03 октября 2010

В вашем файле .emacs

(defun perl-eval () "Run selected region as Perl code" (interactive)
   (shell-command-on-region (mark) (point) "perl "))
(global-set-key (kbd "<f5>") 'perl-eval)
2 голосов
/ 03 октября 2010

Вы можете сделать C-h k F5 в обоих экземплярах Emacs. Он скажет вам, к какой команде привязан ключ F5, чтобы вы могли увидеть разницу. Чтобы связать ключ на локальном компьютере после того, как вы знаете, что вызывать, используйте что-то вроде:

(add-hook 'perl-mode-hook '(lambda () (local-set-key  [f7] 'compile)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...