在 Bash 中,要输入文字 TAB 字符:
- 击键tab不起作用,但只会调用 Bash 使用的 readline 完成
- Ctrl- V-tab作品
$(echo $'\t')
作品
问题
- 第三种方法实际上是通过 Bash 将
$'\t'
制表符解释为 ANSI C 字符串来完成的,这是否正确? - 第二种方法是如何实现的呢?也是 Bash 使用的 readline 吗?
- 一般来说,输入文字字符有哪些方法?
答案1
这个怎么做的
您所说的“文字字符”是作为普通 Unicode 字符实现的。让我们看看它如何适用于Tabulation
和New line
。检查Tabulation
十六进制编码:
printf $'\t' | hexdump
输出是
0000000 0009
0000001
输出表示该\t
字符是普通的UTF-8字符U+0009
。您可以这样打印:
printf '\x00\x09'
或与echo
:
echo -e '\u0009'
考虑以下New line
字符示例:
bob@alice:~$ printf $'\n' | hexdump
0000000 000a
0000001
bob@alice:~$ printf '\x00\x0A empty lines are above and below'; echo $'\n'
empty lines are above and below
bob@alice:~$ echo -e '\u000a empty line is above'
empty line is above
bob@alice:~$
如何输入 Unicode 字符
Linux中有所谓的ComposeKey
or 。MultiKey
密钥可以在xorg.conf.d/10-keyboard.conf
文件中定义,只需将行添加到文件中:
Option "xkbOptions" "grp:alt_shift_toggle,terminate:ctrl_alt_bksp,compose:menu"`
Compose
UTF-8 (Unicode) 撰写序列提示可以在文件中找到:
less /usr/share/X11/locale/en_US.UTF-8/Compose
在 GUI 终端中也可以使用CTRL+SHIFT+U
键绑定 - 按下它,您将看到u
字母。输入并用或键266a
完成- 出现八分音符符号。Space
Enter