如何优雅地输入Unicode字符

计算机的世界是由字符组成,除了常见的键盘上可以敲打的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中,在可以通过在编辑模式中按下"Ctrl-V"(或者简写为^V),然后再按下"u"以及unicode编码的十六进制值,来输入unicode字符。比如,希腊字母λ(lambda)通过键组合输入"^Vu03BB"。你也可以通过"Ctrl-K"(^K)以及一个digraph连字符输入一些字符。比如上面的字符也可以通过敲写"^Kl*"输入。更多连字符信息可以通过vim命令":digraphs"查看

如何优雅地输入Unicode字符

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

在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)。


分享到:


相關文章: