Setiap kali saya mengedit skrip shell di emacs dan mengetikkan tiga chevron untuk mengarahkan ulang string mentah ke stdin, emacs menyisipkan karakter 'EOF' dan baris baru di antara mereka, jadi
cat <<< 'some string'
menjadi
cat <<EOF
< 'some string'
Saya dapat kembali dan menghapus karakter tambahan untuk mendapatkan buffer dalam keadaan yang saya inginkan, tetapi ini adalah perilaku yang sangat menjengkelkan, dan sepertinya hanya terjadi dalam mode skrip shell, yang biasanya merupakan satu-satunya saat saya mengetikkan pola ini. Apakah ada cara untuk menonaktifkan perilaku ini?
bash
shell-mode
Erik
sumber
sumber
<<<
denganC-3 <
.sh-mode-hook
tidak bekerja untuk saya, tetapish-set-shell-hook
berhasil.Glucas benar-benar tepat, tetapi untuk melengkapi jawabannya, saya memiliki kode ini yang saya gunakan sendiri untuk membuat penyisipan dokumen di sini sedikit lebih pintar.
Saran ini, ditambah dengan
sh-electric-here-document-mode
diaktifkan, membuatnya agar jika Anda mengetikkan dua chevron, otomatis di sini doc akan dibuat, tetapi kemudian jika karakter berikutnya yang Anda ketik adalah chevron yang lain, ia akan kembali dan Anda akan dibiarkan hanya dengan <<<.Tentu saja ini berarti bahwa jika Anda benar-benar ingin memulai dokumen di sini dengan chevron, Anda harus memasukkannya C-q<,. Jadi itu tergantung pada apa yang Anda lakukan lebih banyak, jika Anda melakukan lebih banyak string di sini daripada di sini docs, ini bisa menyenangkan untuk dimiliki, bahkan jika Anda tidak melakukannya, jarang Anda ingin memulai doc di sini dengan chevron dan merasa tidak nyaman.
sumber