Answers:
这是由引起的sh-electric-here-document-mode
。启用后,<<
将在此处插入文档框架。
默认情况下启用。您可以使用钩子禁用它,例如:
(add-hook 'sh-mode-hook (lambda () (sh-electric-here-document-mode -1)))
sh-mode-hook
对我没用,但是对我sh-set-shell-hook
有用。
glucas是完全正确的,但是为了补充他的答案,我使用了这段代码,使自己的文档插入更加智能。
该建议与sh-electric-here-document-mode
启用功能结合使用,因此,如果您键入两个V形,则会创建自动的此处doc,但是如果您键入的下一个字符是另一个V形,则会还原该字符,并且只剩下<<<。
(defadvice sh--maybe-here-document (around be-smart-about-it activate)
"Do normal here doc auto insert, but if you type another chevron, revert and leave just <<<."
(if (and (= (current-column) 1)
(looking-back "^<")
(looking-at "\nEOF")
(save-excursion
(forward-line -1)
(end-of-line 1)
(looking-back "<<EOF")))
(progn (delete-region (search-backward "EOF") (search-forward "EOF" nil t 2))
(insert "<"))
ad-do-it))
当然,这意味着,如果您实际上想使用V形图形开始此处文档,则需要将其原始插入C-q<。因此,这取决于您要做什么,如果您在此处执行的字符串多于在此处文档,那么这样做可能会很不错,即使您不这样做,也很少有人希望使用人字形文字在此处创建文档,不便。
<<<
用C-3 <
。