Не могу написать заглавную М - PullRequest
2 голосов
/ 03 января 2012

Полагаю, моя проблема довольно очевидна, но я не знаю Лисп и не могу ее понять. Каждый раз, когда я пытаюсь написать заглавную букву «М» в файле Python, это не сработает (кажется, это начало ярлыка). Я предполагаю, что где-то в модуле или в моем файле .emacs он пытается связать что-то с Alt + что-то. Но вместо этого он связывает его с заглавной буквой М. Вот мой файл .emacs (большую часть которого я скопировал из сети):

; load-path setting is only needed if the directory you put
; weblogger.el in isn't already in your load-path
(add-to-list 'load-path "~/.emacs.d/")

; Remap Ctrl-tab to M-Tab
(define-key function-key-map [(control tab)] [?\M-\t])

(require 'ipython)
(define-key py-mode-map (kbd "M-") 'anything-ipython-complete)
(define-key py-shell-map (kbd "M-") 'anything-ipython-complete)
(define-key py-mode-map (kbd "C-c M") 'anything-ipython-import-modules-from-buffer)

(require 'python-mode)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))

(require 'python-pep8)
(require 'python-pylint)

(require 'lambda-mode)
(add-hook 'python-mode-hook #'lambda-mode 1)

(require 'comint)
(define-key comint-mode-map (kbd "M-") 'comint-next-input)
(define-key comint-mode-map (kbd "M-") 'comint-previous-input)
(define-key comint-mode-map [down] 'comint-next-matching-input-from-input)
(define-key comint-mode-map [up] 'comint-previous-matching-input-from-input)

(autoload 'pylookup-lookup "pylookup")
(autoload 'pylookup-update "pylookup")
(setq pylookup-program "~/.emacs.d/pylookup/pylookup.py")
(setq pylookup-db-file "~/.emacs.d/pylookup/pylookup.db")
(global-set-key "\C-ch" 'pylookup-lookup)

(autoload 'autopair-global-mode "autopair" nil t)
(autopair-global-mode)
(add-hook 'lisp-mode-hook
          #'(lambda () (setq autopair-dont-activate t)))

(add-hook 'python-mode-hook
          #'(lambda ()
              (push '(?' . ?')
                    (getf autopair-extra-pairs :code))
              (setq autopair-handle-action-fns
                    (list #'autopair-default-handle-action
                          #'autopair-python-triple-quote-action))))

(require 'python-pep8)
(require 'python-pylint)

(add-hook 'before-save-hook 'delete-trailing-whitespace)

(autoload 'pylookup-lookup "pylookup")
(autoload 'pylookup-update "pylookup")
(setq pylookup-program "~/.emacs.d/pylookup/pylookup.py")
(setq pylookup-db-file "~/.emacs.d/pylookup/pylookup.db")
(global-set-key "\C-ch" 'pylookup-lookup)

;; Initialize Rope
(pymacs-load "ropemacs" "rope-")
(setq ropemacs-enable-autoimport t)

(require 'auto-complete)
(global-auto-complete-mode t)

;(when (require 'auto-complete nil t)
;  (require 'auto-complete-yasnippet)
;  (require 'auto-complete-python)
;  (require 'auto-complete-css)
;  (require 'auto-complete-cpp)
;  (require 'auto-complete-emacs-lisp)
;  (require 'auto-complete-semantic)
;  (require 'auto-complete-gtags))

;  (global-auto-complete-mode t)
;  (setq ac-auto-start 3)
;  (setq ac-dwim t)
;  (set-default 'ac-sources '(ac-source-yasnippet ac-source-abbrev ac-source-words-in-buffer ac-source-files-in-current-dir ac-source-symbols))

; (load-library "init_python")

Есть идеи, где мне начать искать проблему? Простой поиск или любой другой способ отладки файлов в каталоге .emacs?

1 Ответ

6 голосов
/ 03 января 2012

Это выглядит неправильно для меня:

(define-key py-mode-map (kbd "M-") 'anything-ipython-complete)
(define-key py-shell-map (kbd "M-") 'anything-ipython-complete)
(define-key comint-mode-map (kbd "M-") 'comint-next-input)
(define-key comint-mode-map (kbd "M-") 'comint-previous-input)

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

т.е.

(define-key py-mode-map (kbd "M-TAB") 'anything-ipython-complete)

Здесь M означает META, который обычно связан с ALT или ESC.

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

...