Emacs 禁用'\C-x\C-s“;以多期模式

Emacs 禁用'\C-x\C-s“;以多期模式,emacs,elisp,Emacs,Elisp,在术语模式下,无需使用C-x C-s来保存缓冲区。所以我想禁用它。我试图用术语模式定义一个新的绑定来替换它,但失败了 (add-hook 'term-mode-hook #'(lambda () (define-key term-mode-map "\C-x\C-s" #'(lambda () (interactive) (mess

在术语模式下,无需使用C-x C-s来
保存缓冲区
。所以我想禁用它。我试图用术语模式定义一个新的绑定来替换它,但失败了

(add-hook 'term-mode-hook 
          #'(lambda () 
              (define-key term-mode-map "\C-x\C-s"
                #'(lambda () 
                    (interactive)
                    (message "NO!")))))
感谢您的帮助。谢谢

更新:我使用基于术语模式的多术语。

从代码中去掉#'。它应该会起作用。但您仍然可以使用“M-x保存缓冲区”保存缓冲区

更新:

这个代码对我有用

(添加hook'术语模式hook
(lambda()
(定义关键术语模式图(kbd“C-x C-s”)
(lambda()
(互动)
(留言“你好,世界!”))

设置钩子后,需要重新加载术语缓冲区。它不适用于现有的缓冲区

,正如wvxvw所说的,我尝试过这个,它可以工作。将以下内容添加到
术语绑定键列表中
。谢谢大家

("\C-x\C-s" . (lambda () 
            (interactive)
            (message "NO!")))

如果不需要保存缓冲区,为什么要尝试保存它?你想证明自己是傻瓜吗?@Raghu我编辑文件只是一种习惯。在术语模式下,偶尔会按C-x C-s。我认为终端模式下的键映射的名称是
终端映射
,而不是
术语模式映射
(但可能是因为我使用的是旧版本的Emacs)。@Barmar no
终端映射
定义…@wvxvw你说得对。非常感谢:-)看我的答案。奇怪,不起作用。也许是因为我使用了基于术语的多术语?Raghu:
(lambda)
长期以来一直等同于
(lambda)
,所以尽管没有必要使用
引用语法,但它不应该是任何问题的原因。phils你是对的,在lambda的情况下,“存在/不存在”不应该有任何区别。更新了答案。。。。