Podczas edycji pliku skryptu bash za pomocą emacsa i próby wprowadzenia <<<
, przy drugim <
emacsie wstaw szablon dla dokumentu tutaj, jak w poniższym przykładzie:
<<EOF
EOF
To nie jest pożądany wynik, ponieważ wprowadziłbym literał <<<
.
W tej chwili uciekam się do wchodzenia < < <
, a następnie do usuwania spacji, ale wolę, aby móc bezpośrednio do nich wchodzić.
bash
emacs
autocomplete
enzotib
źródło
źródło
Odpowiedzi:
W rzeczywistości nie ma potrzeby niestandardowej
my-disable-here-document
funkcji Toma ponownego przypisywania klawiszy. Tę funkcję można włączyć i wyłączyć za pomocąsh-electric-here-document-mode
:(Można go również przełączyć na aktywny bufor za pomocą
M-x sh-electric-here-document-mode
.)źródło
sh-mode-hook
nie działało dla mnie, ale działałosh-set-shell-hook
.Powiązanie
<
doself-insert-command
w trybie bash, a następnie wstawi tylko znak.Domyślnie jest to związane z
sh-maybe-here-document
trybem bash i ta funkcja wykonuje automatyczne wstawianie.Oto sposób na odzyskanie klucza:
źródło
<
jestself-insert-command
domyślnie powiązane .Jeśli jedynym powodem, dla którego chcesz wyłączyć zachowanie tutaj-dokumentu, jest to, że uniemożliwia on wstawienie tutaj-ciągu <<<, to powiązanie
C-<
z funkcją, która zawiera(insert "<<<")
, zadziała i nadal zezwala na automatyczny szablon tutaj-dokumentuźródło
Wchodzę
<<<
jak M-3<w trybie powłoki.źródło
Rodzaj < C-q < <
źródło
Po obejrzeniu: http://web.mit.edu/dosathena/sandbox/emacs-19.28/lisp/sh-script.el wpadłem na to rozwiązanie:
źródło