Saat mengedit file skrip bash dengan emacs, dan mencoba masuk <<<
, pada <
emacs kedua masukkan templat untuk dokumen di sini, seperti dalam contoh berikut:
<<EOF
EOF
Ini bukan output yang diinginkan, karena saya akan memasukkan literal <<<
.
Untuk saat ini saya memilih untuk masuk < < <
, dan kemudian menghapus spasi, tetapi saya lebih suka diizinkan untuk masuk secara langsung.
bash
emacs
autocomplete
enzotib
sumber
sumber
Jawaban:
Sebenarnya tidak perlu untuk
my-disable-here-document
fungsi kustom Tom rebinding tombol. Fitur ini dapat diaktifkan dan dinonaktifkan dengansh-electric-here-document-mode
:(Ini juga dapat diaktifkan untuk buffer aktif via
M-x sh-electric-here-document-mode
.)sumber
sh-mode-hook
tidak bekerja untuk saya, tetapish-set-shell-hook
berhasil.Bind
<
keself-insert-command
dalam mode bash dan kemudian hanya akan memasukkan karakter.Secara default itu terikat
sh-maybe-here-document
ketika dalam mode bash dan fungsi itu melakukan penyisipan otomatis.Ini cara untuk mengembalikan kunci:
sumber
<
terikatself-insert-command
secara default.Jika satu-satunya alasan Anda ingin menonaktifkan perilaku di sini-doc adalah bahwa hal itu mencegah Anda memasukkan string di sini- <<<, kemudian mengikat
C-<
ke fungsi yang berisi(insert "<<<")
akan berfungsi, dan masih memungkinkan templat otomatis di sini-docsumber
Saya masuk
<<<
seperti M-3<dalam mode shell.sumber
Tipe < C-q < <
sumber
Setelah melihat: http://web.mit.edu/dosathena/sandbox/emacs-19.28/lisp/sh-script.el Saya menemukan solusi ini:
sumber