如何在此处禁用 emacs 文档完成

如何在此处禁用 emacs 文档完成

使用 emacs 编辑 bash 脚本文件并尝试输入 时<<<,在第二个<emacs 处插入此处文档的模板,如下例所示:

<<EOF

EOF

这不是所需的输出,因为我会输入一个文字<<<

目前,我采用输入< < <,然后删除空格的方法,但我更喜欢直接输入。

答案1

Tom 的自定义函数实际上不需要my-disable-here-document重新绑定按键。可以通过以下方式启用和禁用此功能sh-electric-here-document-mode

(add-hook 'sh-mode-hook
          (lambda ()
            (sh-electric-here-document-mode -1)))

(也可以通过 切换活动缓冲区M-x sh-electric-here-document-mode。)

答案2

<在 bash 模式下绑定self-insert-command,然后它只会插入字符。

默认情况下,它绑定sh-maybe-here-document在 bash 模式下,并且该函数执行自动插入。

下面是一种反弹密钥的方法:

(add-hook 'sh-set-shell-hook 'my-disable-here-document)

(defun my-disable-here-document ()
  (local-set-key "<" 'self-insert-command))

答案3

如果您想要禁用的唯一原因这里-文档行为是它阻止您插入这里的字符串<<<,然后绑定C-<到包含的函数(insert "<<<")将起作用,并且仍然允许自动这里-文档模板

(defun my-here-string() 
  "Insert <<< (eg. for a bash here-string)" 
  (interactive)
  (insert "<<<"))
(global-set-key (kbd  "C-<") 'my-here-string)

答案4

类型< C-q < <

相关内容