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 .