不能写资本M.

时间:2012-01-02 21:48:47

标签: emacs lisp

我认为我的问题非常明显,但我不知道Lisp并且无法弄明白。每次我尝试在python文件中写一个大写“M”时它都行不通(似乎认为这是一个快捷方式的开始)。我的猜测是在模块或我的.emacs文件中的某个地方,它试图将某些内容绑定到Alt +。但相反,它将它与资本M绑定。这是我的.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 个答案:

答案 0 :(得分:6)

这对我来说不对:

(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 代表METAALT通常绑定到ESCX

顺便说一下,你可以做 X C - h 看看 以{{1}}开头的次模式绑定。