Embora você não possa ligar chaves em si mesmo no GNU Readline - algo como "(": "()"
direciona para loop infinito - existe uma maneira. Não é para readline
em geral, apenas para bash
. Adicione isto a você .bashrc
:
readline-brackets() {
READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}${1}${READLINE_LINE:$READLINE_POINT}"
((READLINE_POINT+=1))
}
bind -m vi-insert -x '"\"" : "readline-brackets \"\""'
bind -m vi-insert -x $'"7" : "readline-brackets \7\7"' # SINGLE QUOTE
bind -m vi-insert -x '"<" : "readline-brackets \<\>"'
bind -m vi-insert -x '"(" : "readline-brackets \(\)"'
bind -m vi-insert -x '"[" : "readline-brackets []"'
bind -m vi-insert -x '"{" : "readline-brackets {}"'
Remova -m vi-insert
se você usar o modo emacs
, não vi
.