Andrew Hyatt schrieb am Di., 26. Jan. 2016 um 06:16 Uhr: > Chong Yidong writes: > > >> Cook yourself up a bash script and type a line of code like: > >> for i in $(/bin/vim << > >> > >> A default emacs install will complete with "EOF\n\nEOF" (in a more > >>clever fashion so the rest of the line is undisturbed), and place the > >>cursor on the new blank line. This is incorrect behaviour, as it > >>breaks entry of BASH here-strings when the user's intent is still > >>ambiguous. This should only respond to things ending in, for example > >>"<< " or possibly "< >> > >> Further, emacs does something outright wrong: An attempt to fix the > >>situation by inserting another '<' between the "<<" and "EOF" +results > >>in ANOTHER pair of "EOF" being inserted in a syntactically invalid way. > > > > I fixed the second problem, but I don't see any easy way to solve the > > first one. > > > > (The difficulty of fixing the first bug is illustrative of the problems > > with individual major modes rolling their own "electric" completion > > facilities. It might be nice to have a minor mode that provides a > > unified framework for this kind of functionality; which may also need > > built-in support.) > > Just a note that I've reproduced the original problem in Emacs 25, so it > appears to be unfixed at present. > > > The behavior can be disabled using (add-hook 'sh-mode-hook (lambda () (sh-electric-here-document-mode 0))) I think this behavior should be customizable and off by default.