Emacs 为 "<<<"插入 EOF

标签 emacs

在使用 emacs 编辑 bash shell 脚本 (#!/bin/sh) 时,每当我尝试输入“<<<”时,它会在第三个括号中直接在括号后面放置“EOF”,并放置两个回车在行尾返回,并再次写入 'EOF',如下所示:

   resiline=$(grep -w -n "$searchstring" input/*)
   resifile=$(cut -d \: -f 1 <<<EOF $resiline)

EOF

它为什么这样做,我如何防止它这样做?

最佳答案

这样做是因为启用了 sh-electric-here-document-mode。要以交互方式禁用它,只需执行 M-x sh-electric-here-document-mode

在 Emacs 24 中,此次要模式默认由 sh-mode 启用,但您可以使用 sh-mode-hook 再次禁用它。

在 Emacs 25 中,sh-mode-hook 默认包含 sh-electric-here-document-mode(而不是 sh-mode直接调用它),所以你可以通过以下方式删除它:
M-x 自定义选项 RET sh-mode-hook RET

关于Emacs 为 "<<<"插入 EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44031556/

相关文章:

emacs - 为什么在编译函数时会收到 "Undefined function"警告?

emacs - 在 emacs 中显示最近的击键

Emacs -- 直接复制/移动文件 -- 如果需要创建目录

emacs - emacs中的附加修饰键?

macos - 在终端中创建复杂转义代码(转义序列)的正确方法

r - 尝试访问 h_elp 时 emacs ess 崩溃

emacs - 组织模式表公式引用列表

emacs - 为什么在 emacs-lisp 中的函数参数前使用#'?

Python 标准输出显示 emacs 中的隐藏字符

emacs - emacs 有类似 vi 的 "set number"吗?