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-char
em que emprestei a linha printf de amplie .
Para usar este widget, vincule-o a
S
no vi-command-mode do zle (ou qualquer outra chave que você não use):bindkey -M vicmd "S" insert-special-char
Em 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: