emacs - 在字符模式下从 ansi-term 运行 Emacs 命令

标签 emacs elisp

我希望能够在 Emacs 中触发与 M-x command RET 相关的标准行为在 字符模式 ansi-术语缓冲。

我实际上曾经有这个功能,但由于某种原因它在过去几天里消失了,即使我有 不是 升级 Emacs(虽然我可能无意中修改了我的 init 文件)

另外,我有以下曾经工作的钩子(Hook)(在窗口之间切换),但它不再起作用了。

(global-set-key (kbd "M-J") 'windmove-left)          ; move to left window
(global-set-key (kbd "M-L") 'windmove-right)         ; move " " 
(global-set-key (kbd "M-I") 'windmove-up)            ; move " "
(global-set-key (kbd "M-K") 'windmove-down)          ; move " " 

(add-hook 'term-mode-hook
  (lambda()
    (define-key term-raw-map (kbd "M-J") 'windmove-left)  
    (define-key term-raw-map (kbd "M-L") 'windmove-right) 
    (define-key term-raw-map (kbd "M-I") 'windmove-up)    
    (define-key term-raw-map (kbd "M-K") 'windmove-down)  
    (define-key term-raw-map (kbd "M-F") 'toggle-maximize-buffer) 
    ))

更新:

如果我评估 (lookup-key term-raw-map (read-kbd-macro "\C-x")) 以前 打开任何 ansi-term,我得到:term-send-raw , 但如果我评估它 之后 我打开一个ansi-term,我得到:
(keymap #^[nil nil keymap 
#^^[3 0 pop-global-mark nil list-buffers term-send-raw list-directory eval-last-sexp find-file nil nil indent-rigidly ...] #^^[1 0 #^^[2 0 
#^^[3 0 pop-global-mark nil list-buffers term-send-raw list-directory eval-last-sexp find-file nil nil indent-rigidly ...] nil nil nil nil nil nil nil nil nil ...] nil nil nil nil nil nil nil nil nil ...] nil nil nil nil nil nil nil ...] (67108912 . text-scale-adjust) (67108925 . text-scale-adjust) (67108909 . text-scale-adjust) (67108907 . text-scale-adjust) (67108896 . pop-global-mark) (C-left . previous-buffer) (left . previous-buffer) (C-right . next-buffer) (right . next-buffer))

这是预期的行为吗?

最佳答案

我使用这样的设置:

(define-key term-raw-map (kbd "M-x") 'nil)

然后 M-xterm-char-mode 工作照常。如果您对某些功能使用全局键绑定(bind),请输入 'nil对于 term-raw-map 中的相同键绑定(bind).

关于emacs - 在字符模式下从 ansi-term 运行 Emacs 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14484454/

相关文章:

emacs - 在宏中使用 clojure 语法引号时是否可以关闭符号限定?

Emacs:为一个文件动态设置制表符缩进

shell - Emacs shell 模式在缓冲区中打开文件

用于 Web 开发的 emacs 插件

emacs - 如何在 emacs 中定期运行任务?

python - 如何使用 ropemacs 进行跨项目重构?

emacs - "script name symbol"对emacs set-fontset-font函数意味着什么?

emacs - 如何在指定模式下禁用 hl-line 功能

ruby-on-rails-3 - Emacs Ruby 自动完成几乎可以工作

emacs - (function) 在 Emacs 中有什么用途吗?