在使用 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/