如何優雅地輸入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)。


分享到:


相關文章: