glucas hoàn toàn chính xác, nhưng để bổ sung cho câu trả lời của anh ấy, tôi có đoạn mã này tôi đã sử dụng để làm cho tài liệu ở đây thông minh hơn một chút.
Lời khuyên này, cùng với sh-electric-here-document-mode
kích hoạt, làm cho nó để nếu bạn nhập hai chevron, tài liệu tự động ở đây sẽ được tạo, nhưng sau đó nếu ký tự tiếp theo bạn nhập là một chevron khác, nó sẽ hoàn nguyên và bạn sẽ chỉ còn lại <<<.
(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))
Tất nhiên, điều này có nghĩa là nếu bạn thực sự muốn bắt đầu một tài liệu ở đây với một chevron, bạn sẽ cần phải chèn nó , C-q<. Vì vậy, nó phụ thuộc vào những gì bạn làm nhiều hơn, nếu bạn làm nhiều chuỗi ở đây hơn các tài liệu ở đây, điều này có thể rất hay, ngay cả khi bạn không, thật hiếm khi bạn muốn bắt đầu một tài liệu ở đây với một chevron và bất tiện
<<<
vớiC-3 <
.