Três possibilidades ( ~ tem o código ASCII 126 ou 176 em decimal ou notação octal, resp.):
-
use a sintaxe
$'\OCT', em queOCTé o código ASCII na notação octal:$ echo foo$'6'bar foo~bar -
usar substituição de comando com printf:
$ echo foo$(printf "6")bar foo~bar -
use este widget zle para se assemelhar à entrada de caractere especial do vi:
insert-special-char() { LBUFFER+=$(printf "\x$(printf %x $NUMERIC)") } zle -N insert-special-charem que emprestei a linha printf de amplie .
Para usar este widget, vincule-o a
Sno vi-command-mode do zle (ou qualquer outra chave que você não use):bindkey -M vicmd "S" insert-special-charEm seguida, digite o código ASCII (em notação decimal) enquanto estiver no modo de comando vi do zle e pressione
ESC 1 2 6 SS. Em seguida, o caractere especial é inserido: