关键绑定不起作用?如何配置

时间:2012-09-12 18:09:30

标签: emacs octave

我在Linux Mint Maya上使用Emacs 24.和Octave 3.6.3

我已经设置了我的init文件,一切正常。 M-x run-octave给出了较低的八度音阶,.m文件在八度音阶模式下自动打开。

但我似乎无法获得关键绑定工作?当我处于八度模式时,我按下 'Ctrl'和'c'在一起,然后我按'i',emacs告诉我C-c我未定义?

有人可以帮忙吗?我只是想轻松发送行

2 个答案:

答案 0 :(得分:2)

最好查看源文件。以下是为八度音阶模式定义快捷方式的方法:

(defvar octave-mode-map
  (let ((map (make-sparse-keymap)))
    (define-key map "`" 'octave-abbrev-start)
    (define-key map "\e\n" 'octave-indent-new-comment-line)
    (define-key map "\M-\C-q" 'octave-indent-defun)
    (define-key map "\C-c\C-b" 'octave-submit-bug-report)
    (define-key map "\C-c\C-p" 'octave-previous-code-line)
    (define-key map "\C-c\C-n" 'octave-next-code-line)
    (define-key map "\C-c\C-a" 'octave-beginning-of-line)
    (define-key map "\C-c\C-e" 'octave-end-of-line)
    (define-key map [remap down-list] 'smie-down-list)
    (define-key map "\C-c\M-\C-h" 'octave-mark-block)
    (define-key map "\C-c]" 'smie-close-block)
    (define-key map "\C-c/" 'smie-close-block)
    (define-key map "\C-c\C-f" 'octave-insert-defun)
    ;; FIXME: free C-h so it can do the describe-prefix-bindings.
    (define-key map "\C-c\C-h" 'info-lookup-symbol)
    (define-key map "\C-c\C-il" 'octave-send-line)
    (define-key map "\C-c\C-ib" 'octave-send-block)
    (define-key map "\C-c\C-if" 'octave-send-defun)
    (define-key map "\C-c\C-ir" 'octave-send-region)
    (define-key map "\C-c\C-is" 'octave-show-process-buffer)
    (define-key map "\C-c\C-ih" 'octave-hide-process-buffer)
    (define-key map "\C-c\C-ik" 'octave-kill-process)
    (define-key map "\C-c\C-i\C-l" 'octave-send-line)
    (define-key map "\C-c\C-i\C-b" 'octave-send-block)
    (define-key map "\C-c\C-i\C-f" 'octave-send-defun)
    (define-key map "\C-c\C-i\C-r" 'octave-send-region)
    (define-key map "\C-c\C-i\C-s" 'octave-show-process-buffer)
    ;; FIXME: free C-h so it can do the describe-prefix-bindings.
    (define-key map "\C-c\C-i\C-h" 'octave-hide-process-buffer)
    (define-key map "\C-c\C-i\C-k" 'octave-kill-process)
    map)
  "Keymap used in Octave mode.")

如您所见,您必须使用C-c C-i l发送一行

答案 1 :(得分:1)

我认为您为octave-mode阅读的文档已过时。您可能需要使用C-c C-i作为前缀而不是C-c i。要拥有完整命令,您需要输入另一个字符,例如rC-r来发送该区域。

此更改很可能符合emacs规范。 Emacs保留C-c <char>中的密钥,其中<char>是用户的任何一个字符。因此,octave-mode首先不应该使用这样的密钥。