分享

如何优雅地输入Unicode字符

 昵称11935121 2018-07-21

计算机的世界是由字符组成,除了常见的键盘上可以敲打的100多个字符(确切说ASII 128个,键盘只有104个键)。但是那么多字符该怎么输入怎么显示,比如中文,于是就有了各种各样的字符编码,比如GB2312,GBK等等。后来为了统一提出了一个大集成方案这就是Unicode。现在越来越多的软件开始支持Unicode,很多编程语言的也是从底层开始支持Unicode以解决字符转换的问题,比如Golang、Python 3和Perl 6。尤其是Perl 6可以支持Unicode变量,还有很多Unicode的操作符,所以对一个码农来说输入Unicode就成了一种技能,了解如何输入这些符号变得非常必要,因为很多符号在键盘没法找得到。

如何优雅地输入Unicode字符

本文中虫虫会教会大家如何在编辑器、shell以及命令行中输入Unicode,其中大部分的技巧适用于一般情况。有关各个操作系统和软件下Unicode字符输入的详细信息可以参考维基百科相关词条(wikipedia/wiki/ Unicode_input)。

window下输入

window下输入特殊字符可以直接用输入法的特殊字符输入,方法是在输入法条下点击特殊字符输入,比如虫虫用的讯飞输入法:

如何优雅地输入Unicode字符

window下查看各种编码和Unicode字符可以用charmap软件,通过'win+R',在弹出运行窗口输入'charmap':

如何优雅地输入Unicode字符

其他更多软件的Unicode输入方案限于篇幅不在赘述,本文主要以linux为主。

Xwindow系输入

Xorg包含了其图形桌面下Unicode信息。(wikipedia:Compose_key#GNU.2FLinux)

常见的组合键包括:

注意默认的'AltGr + Shift'你可以映射为更方便的键,比如'Capslock'。

在GNOME 2和MATE中,通过下面菜单设置:'首选项→键盘→布局→选项→合成键位置',例如»+«,可以输入'CAPSLOCK> > + CAPSLOCK <><>

XCompose允许使用 '.Xcompose'文件自定义个性化的digraph,比如dotXCompose(github/ kragen/xcompose)就是一个很完善的例子。在GNOME中对Xcompose做了重写,并使用一个固定码表来代替其配置文件。但可以通过设置'GTK_IM_MODULE=xim'来恢复Xcompose设置。但是你必须额外的安装xim桥软件,比如uim-xim。

这些组合键可能不能某些程序中使用可能会有问题。这时,可以使用ibus:

input_module=xim

export GTK_IM_MODULE=$input_module

export XMODIFIERS=@im=$input_module

export QT_IM_MODULE=$input_module

为了对所有用户都生效,最简便的方法是,将其保存为文件compose.sh,并将以其放到/etc/profile.d目录中,这样你就不必针对GUI环境做适配处理,就可以生效。

如果你使用KDE桌面,你可以把这个文件放置到'~/.config/plasma-workspace/env/compose.sh',就可以正常工作。其他桌面环境可能略有不同,根据不同桌面做对应的环境变量设置即可。

ibus

如果使用xim输入法输入一些符号(比如)时出现了问题,你可以改为使用ibus。

你可以使用你系统发行版的包管理器安装ibus:

redhat系(centos、fedra)你可以用:yum install ibus ibus-sunpinyin

debian系(ubuntu)你可以用:ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4 && im-switch -s ibus

然后使用:

ibus-daemon --xim --verbose --daemonize --replace

--xim设置使得不能使用ibus的程序,继续使用xim,向后兼容。

KDE桌面

如果使用的是KDE桌面,请打开开始菜单并输入'Autostart',然后点击'Autostart'按钮。在打开的设置窗口中,单击'添加程序',键入'ibus-daemon'并且点击'确认',进入应用程序弹出窗口,在'命令'字段中输入完整的'ibus-daemon'命令(见上节),然后点击'确认'。这样当你下次登陆进来时候会自动启动。

编辑器

Vim编辑器

在Vim中,在可以通过在编辑模式中按下'Ctrl-V'(或者简写为^V),然后再按下'u'以及unicode编码的十六进制值,来输入unicode字符。比如,希腊字母λ(lambda)通过键组合输入'^Vu03BB'。你也可以通过'Ctrl-K'(^K)以及一个digraph连字符输入一些字符。比如上面的字符也可以通过敲写'^Kl*'输入。更多连字符信息可以通过vim命令':digraphs'查看

如何优雅地输入Unicode字符

当然你也可以设置自己个性化的连字符,命令是':digraph',更多信息可以参考vim维基相关内容(vim.wikia: Entering_special_characters)

Emacs编辑器

在Emacs中,unicode字符通过以下两个步骤:

1、'C-x 8 RE'进入unicode输入模式。

如何优雅地输入Unicode字符

2、下方的小窗口出输入文本(名称或十六进制)。然后输入回车键。实现unicode字符就会输入。

例如,和上面的例子一样输入希腊母λ(lambda),使用组合键'C-x 8 RET 3bb RET'

你也可以使用'RFC 1345'字符实现输入:'C-x RET C-\ rfc1345 RET'

如何优雅地输入Unicode字符

或者'C-u C-\ rfc1345 RET'。然后再正文通过'&'+rfc1345助记符方式输入特殊字符。注意再你输入&后Emacs将会在回显区域显示可能的字符。

如何优雅地输入Unicode字符

比如,输入希腊字母λ(lambda),可以通过'&l*'。

可以使用'C-\'切换,Emacs的输入方法,比如选择TeX方法是,键入'C-u C-\ TeX RE',然后输入一个特殊的字符的值(比如λ) '\lambda'。通过'C-h I TeX'查看输入法提供的字符和序列。

如何优雅地输入Unicode字符

Screen和shell

bash shell

在bash shell中,使用Ctrl-Shift-u + unicode码值,输入unicode字符。例如输入集合包含运算符(∈)的字符,使用按键组合'Ctrl-Shift-u 220'。

Screen

如何优雅地输入Unicode字符

GNU Screen支持动态字符码支持,但是支持相当有限。我们可以使用bindkey和exec使用外部程序插入字符。格式为:

bindkey ^K exec .! digraphs

这会将Ctrl-k绑定到shell命令行字符码。你也可以绑定更加友好的rfc1345码表,并对其按需修改。

好了本文虫虫给你介绍了常用的一些输入Unicode的方法,如果本文对你有一定帮助,请给虫虫点赞,并关注虫虫。

更多有关Unicode输入的信息可以查看维基百科相关词条wikipedia/wiki/ Unicode_input)。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多