可以打字吗?在 bash 命令行上没有复制和粘贴?

mer*_*011 5 command-line keyboard-shortcuts keyboard input-method

这似乎是一个奇怪的问题,但我突然想到,在键入如下命令时,我总是必须从Wikipedia复制并粘贴该字符。

echo '5 ?s' >> /tmp/Output
Run Code Online (Sandbox Code Playgroud)

有没有办法直接在标准英文键盘上的键盘快捷键上使用转义序列输入这样的字符?

例如,在 中Vim,可以执行C-k,m*此操作来生成此字符。

ImH*_*ere 14

是的,至少有这四(五?)种方式:

  1. AltGr
    使您的键盘布局English (international AltGr dead keys)
    那么正确的 Alt钥匙就是AltGr钥匙。按AltGr-m将生成一个 µ。许多其他键也会生成其他字符:AltGr-s 代表ß,Shift-AltGr-s 代表§

    控制台有一个单独的键盘布局(真正的控制台在AltCtrlF1up to F6)和一个用于 X 中的 GUI。更改任一个取决于您的发行版(CentOS、Fedora、Debian 等)和显示管理器(gnome、kde、xfce , 等等。)。例如,安装xfce4-xkb-plugin将允许面板上的按钮配置键盘并在 XFCE 中的 X 的多个键盘布局之间切换。

  2. Compose
    使某个键成为Compose键。然后,按下Compose,松开,按下/,松开,然后u会产生一个 µ。

    定义Compose键通常使用xkb或使用键盘布局小程序完成。
    例如,在 Gnome 中通常可在区域和语言部分使用,或者,轻松切换键盘布局

  3. Unicode
    有一种通用的方法可以输入任何Unicode 字符(如果您的控制台支持)。是的 1,111,998 个可能字符的任何代码点(如果您的字体可以绘制它们,则可见)。按下,作为一个和弦(同时)ShiftCtrlu,释放它们(可能会出现一个带下划线的 u?),然后输入b5字符的 Unicode 代码点(始终为十六进制)。最后,输入空格或输入(至少)。

  4. Readline
    在 bash 提示中(当您标记问题时)可以使用 readline 来生成 µ ( mu)。

     bind '"\eu": "µ"'
    
    Run Code Online (Sandbox Code Playgroud)

    或者添加以下行:

     "\eu": "µ"
    
    Run Code Online (Sandbox Code Playgroud)

    to ~/.inputrc,用Alt-读取它x Alt-r或者启动一个新的 bash shell(执行bash),当你输入:

    Alt——u

    一个µ将出现。

  5. 输入法
    对于这样一个简短的答案来说可能太多了。


错误:从技术上讲,问题中请求的字符是 Unicode,\U3bc而此答案为\Ub5. 是的,它们是不同的,我的错误,抱歉。

 $ unicode $(printf '\U3bc\Ub5')
 U+03BC GREEK SMALL LETTER MU
 UTF-8: ce bc UTF-16BE: 03bc Decimal: μ Octal: \01674
 ? (?)
 Uppercase: 039C
 Category: Ll (Letter, Lowercase)
 Unicode block: 0370..03FF; Greek and Coptic
 Bidi: L (Left-to-Right)

 U+00B5 MICRO SIGN
 UTF-8: c2 b5 UTF-16BE: 00b5 Decimal: µ Octal: \0265
 µ (?)
 Uppercase: 039C
 Category: Ll (Letter, Lowercase)
 Unicode block: 0080..00FF; Latin-1 Supplement
 Bidi: L (Left-to-Right)
 Decomposition: <compat> 03BC
Run Code Online (Sandbox Code Playgroud)

从技术上讲,唯一有效的解决方案是数字 3 和 4。在 3 中,Unicode 数字可以从b5到更改3bc为甚至是这个希腊字符。在 4 中只需复制正确的字符即可。

不是为我辩护,而是

  1. 双方b53bc具有为大写39c。所以,两者都是 MU 的小写。
  2. 两者看起来非常非常相似(可能是字体中相同的字形):

在此处输入图片说明

备择方案。

  1. 替代组

    它很可能和已经完成改变的AltGr-g(含XKB)到:

     key <AC05>  { [         g,          G,       dead_greek,   dead_greek ]};
    
    Run Code Online (Sandbox Code Playgroud)

    然后输入AltGr-g m以获得真正的希腊语-mu。

  2. 撰写

    Compose 表不正确,甚至希腊 Compose 文件 (/usr/share/X11/locale/el_GR.UTF-8/Compose) 也列出了:

     <Multi_key> <slash> <u>                 : "µ"   mu
     <Multi_key> <u> <slash>                 : "µ"   mu
     <Multi_key> <slash> <U>                 : "µ"   mu
     <Multi_key> <U> <slash>                 : "µ"   mu
    
    Run Code Online (Sandbox Code Playgroud)

    那些组合为Greek,它们不是。

    compose 的正确解决方案是包含一个 ~/.XCompose 希腊语和重启。

  3. 统一码

    按发布的方式工作,带有 unicode 编号 3bc

  4. 阅读线

    按发布的方式工作,将有效字符更改为任何想要的字符。

  • 注意到这两个字符,它们在排版上是等价的,但 Unicode 标准正在对语义差异进行编码。较低的 codwpoint 是一个数学符号,而较高的 codwpoint 是希腊字母表中的一个字母。语义差异通常无关紧要,但如果文本正在被处理而不仅仅是在屏幕上显示它,则可能会有所不同。 (2认同)