回答:
これはによって引き起こされ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は正確に正しいのですが、彼の答えを補足するために、ここにdocの挿入を少し賢くするために自分で使ったこのコードがあります。
このアドバイスは、sh-electric-here-document-mode
有効化と相まって、2つのシェブロンを入力すると自動hereドキュメントが作成されるようにしますが、次に入力する文字が別のシェブロンである場合、それは元に戻り、<<<だけが残されます。
(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))
もちろん、これは、シェブロンを使用して実際にヒアドキュメントを開始する場合は、そのまま挿入する必要があることを意味しますC-q<。したがって、ここでのドキュメントよりも多くの文字列をここで行う場合は、これを行うことにより異なります。ご不便をおかけします。
<<<
することC-3 <
です。