日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux終端實(shí)現(xiàn)中文輸入簡易教程(linux終端打出漢字)

Linux操作系統(tǒng)的終端下,無論是在文本編輯還是命令行輸入時(shí),都需要使用到鍵盤輸入。而在中文環(huán)境下,輸入中文字符則需要涉及到中文輸入法。

成都創(chuàng)新互聯(lián)主營工布江達(dá)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app開發(fā),工布江達(dá)h5微信小程序搭建,工布江達(dá)網(wǎng)站營銷推廣歡迎工布江達(dá)等地區(qū)企業(yè)咨詢

在Windows操作系統(tǒng)下,用戶普遍使用微軟拼音輸入法、搜狗輸入法等工具來輸入中文,而在Linux環(huán)境下則需采取相應(yīng)的中文輸入法。

本篇文章將從以下幾個(gè)方面,為大家呈現(xiàn)Linux終端實(shí)現(xiàn)中文輸入的簡易教程。

1.中文輸入法安裝

以Ubuntu系統(tǒng)為例,在終端中輸入以下命令,即可安裝智能拼音輸入法:

sudo apt-get install ibus-pinyin

其他常見的中文輸入法如RIME輸入法,SCIM輸入法等均能在終端中安裝。

2.輸入法切換

在Ubuntu系統(tǒng)中,輸入法的切換可以在終端中使用以下快捷鍵來實(shí)現(xiàn):

Ctrl + Space

輸入法切換時(shí),終端底部會(huì)提示當(dāng)前使用的輸入法。

3.輸入中文

在切換至中文輸入法后,我們即可在終端中輸入中文字符。使用智能拼音輸入法中文輸入時(shí),我們可以使用拼音首字母輸入進(jìn)行中文字符的匹配。例如輸入“ZGY”即可輸出“中國銀行”。

4.特殊符號(hào)輸入

對(duì)于一些特殊字符的輸入,我們也可以很方便地在終端中輸入。例如,輸入“shift + ;”即可輸出英文冒號(hào)“:”;輸入“shift + -”即可輸出英文破折號(hào)“-”。

5.快捷鍵

在終端中,常用的快捷鍵也可以幫助我們提高輸入效率。例如輸入“Ctrl + a”即可快速將光標(biāo)移動(dòng)至行首,輸入“Ctrl + e”即可快速將光標(biāo)移動(dòng)至行末。

綜上所述,Linux終端下的中文輸入也非常便捷。通過安裝合適的中文輸入法,并學(xué)會(huì)輸入法切換、中文輸入、特殊符號(hào)輸入等功能,我們可以在Linux系統(tǒng)下,輕松實(shí)現(xiàn)中文輸入。

當(dāng)然,對(duì)于初次使用Linux系統(tǒng)的用戶來說,熟練運(yùn)用鍵盤快捷鍵等操作也是需要一定的學(xué)習(xí)和時(shí)間的。但相信只要不斷地實(shí)踐和使用,大家都能夠掌握這一技能,并輕松愉快地完成諸如文本編輯、命令行操作等任務(wù)。

相關(guān)問題拓展閱讀:

  • 如何改造 Linux 虛擬終端顯示文字

如何改造 Linux 虛擬終端顯示文字

你是說要現(xiàn)實(shí)中文 還是僅僅改變字體 和顏色

  要想控制臺(tái)能支持漢字顯示,需要解決 3 個(gè)問題:

  必須使用 UTF-8 模式 ( 默認(rèn) vc->utf=1 即可 )

  虛擬控制臺(tái)的 vc_screenbuf 必須修改以為 glyph 提供至少 16bit 的空間。

  圖形控制臺(tái)需要 vc_font包含更多的字符,不只是 255 個(gè),并提供代碼繪制寬搭雙倍寬度的中文字形,字體中的字符按照 UNICODE

排列,這樣 glyph 就是字符的 UNICODE 編碼。

  修改虛擬控制臺(tái)

  一開始,我的打算是 vc_screenbuf 修改為 unsigned long long* 類型,32bit 給字符屬性,分別表示 16bit

終端前景色和背景色。glyph 則擁有 31bit 的空間 , 因?yàn)闈h字的寬度為雙倍的英文字母 ,其中 1 bit 用來表示雙字符寬度。比慎并拿如 ‘我’ 會(huì)表達(dá)為

兩個(gè) ‘我’,第二個(gè)’我’的更高位為 1:繪制任何字形的時(shí)候,只繪制字形的左半部分;如果發(fā)現(xiàn)更高位為 1

則繪制字圖中的右半部分。這樣同樣的繪制代碼可以適應(yīng)英文字母和漢字。寫入 vc_screenbuf 的時(shí)候,

如果是雙倍寬度的字符,需要同時(shí)寫入兩份,第二份的更高位置 1 就可以。但是 vc_screenbuf

的格式已經(jīng)被到處假定為每字符兩個(gè)字節(jié)。如此修改導(dǎo)致牽一發(fā)動(dòng)全身。許多艱澀難懂的代碼都依賴 vc_screenbuf 是

每字符兩個(gè)字節(jié)的設(shè)定,直接修改定義后,光是編譯器能直接檢測出來的就有百余個(gè)地方需要修改,還有更多的邏輯并不能被編譯器檢測出來。如此修改的后果就是會(huì)出現(xiàn)許多隱晦的錯(cuò)誤,非常難于調(diào)式。掙扎后,為最終選擇了另一條道路

:

  為漢字重新分配一塊 vc_unicode_screenbuf

  vc_unicode_screenbuf 緊挨著 vc_screenbuf , 事實(shí)上 vc_screenbuf

在分配空間的時(shí)候,多分配了一倍的空間,多分配的空間充作 vc_unicode_screenbuf,因此 struct vc_data 里并沒有添加

vc_unicode_screenbuf 成員。 vc_unicode_screenbuf 同樣為每字符 2 個(gè)字節(jié),并不包含字符屬性,所以 2

個(gè)字節(jié)如數(shù)用來保存 glyph。vc_screenbuf 格式未變,所以 vgacon 不需要修改,這就減少了大量的工作量。向 vc_screenbuf

寫入字符的時(shí)候,同時(shí)寫入一份到 vc_unicode_screenbuf 。如果蔽謹(jǐn)是漢字,由于其 glyph 大于 254 , 所以 vc_screenbuf

的那兩個(gè)字符 ( 漢字雙倍寬度 ) 實(shí)際寫入的是 0xff 和 0xfe ( 故而上文提到是 glyph 大于 254 的字符 ,0xfe 被保留它用了

)。0xff 表示該字符的 glyph 要到 vc_unicode_screenbuf 提取,然后繪制左半部分;0xfe 表示該字符的 glyph 要到

vc_unicode_screenbuf 提取,然后繪制右半部分。對(duì)于 glyph 大于 254 但是又不是雙倍寬度的字符,就不需要 0xfe

作陪了。比如屏幕上顯示的文字是黑底白字的 “牛 B” , vc_screenbuf 的內(nèi)容就是 “0x00ff, 0x0ffe, 0x0f42 ” ,

vc_unicode_screenbuf 的內(nèi)容則是 “牛 , 牛 ,b”

。這是因?yàn)橐粋€(gè)漢字為兩倍的英文字母寬度。在屏幕文字緩沖區(qū)上也必須占用兩個(gè)字符的位置。并且必須有一種機(jī)制能知道應(yīng)該繪制左半部分和右半部分,我使用的就是 0xff

和 0xfe。

  修改圖形控制臺(tái)繪制代碼

  要修改的地方只有 3 個(gè)。

  struct console_font 添加 charcount 成員。將主線內(nèi)核的字體設(shè)置為 charcount = 255。 主線內(nèi)核帶的字體都是

255 個(gè) glyph 的,所以沒有添加字符個(gè)數(shù)的必要。不過我們即將要添加的字體會(huì)有數(shù)萬字符。

  添加一個(gè)新的字體,復(fù)蓋 UNICODE BMP 基本區(qū)域的所有符號(hào)。

  修改字符繪制代碼,添加 vc_unicode_screenbuf 的支持。

  字符繪制代碼的修改比較繁瑣,代碼分布在 drivers/video/console/ 下的多個(gè)文件中。fbcon_putc(s) 由由

vc->vc_sw->con_putc(s) 調(diào)用, fbcon_putc(s) 轉(zhuǎn)而調(diào)用分散于 drivers/video/console/

的多個(gè) puts 實(shí)現(xiàn)。因?yàn)榻K端要支持 console_rotate , decoration , timing , 故而每種模式下的繪制實(shí)現(xiàn)都是不同的。我拿

drivers/video/console/bitblt.c 最常用的不傾斜、不加裝飾等的終端模式為例來講解繪圖部分的修改。由于中文字體為 16×16

點(diǎn)陣,是對(duì)齊的字體,故而其繪制代碼為 bit_putcs_aligned() 原先的代碼以 glyph 為下標(biāo)到 vc->vc_font->data

獲得字體數(shù)據(jù),然后調(diào)用 fb_pad_aligned_buffer 執(zhí)行塊拷貝操作。我的修改很簡單,原來獲得字體數(shù)據(jù)的代碼修改后放入 font_bits()

輔助函數(shù)。 在 font_bits 里,要判斷 glyph 是否為 0xff 或者 0xfe, 如果不是,使用 glyph 為下標(biāo)獲得字體的左半部分后并返回。

如果是,則從 vc_unicode_screenbuf 獲得真正的 glyph 數(shù)值,然后再依據(jù)現(xiàn)有的 glyph 是 0xff 還是 0xfe

去獲得字體的右半部分還是左半部分返回。font_bits 獲得字體數(shù)據(jù)后執(zhí)行 fb_pad_aligned_buffer 塊拷貝。需要修改的地方還有

drivers/video/console/fbcon_ccw.c fbcon_cw.c fbcon_ub.c 。依原理進(jìn)行修改即可。

  虛擬終端的不足之處

  雖然費(fèi)盡心機(jī)添加了中文支持,那只是一個(gè) workaround ,

并不能算真正的支持。要真正的支持必須徹底重寫虛擬終端和控制臺(tái)。而要支持中文,就需要更進(jìn)一步,全面支持 UNICODE ,

包括支持從右向左的書寫習(xí)慣。在內(nèi)核里實(shí)現(xiàn)一個(gè)全面支持 UNICODE

的控制臺(tái)并不是一件容易的事情,何況內(nèi)核的政策也不允許將如此龐大的字庫裝入內(nèi)核。于是乎,這里出現(xiàn)了死胡同。KMS 和 Wayland

的出現(xiàn)讓這死胡同似乎有了個(gè)完美的解。

  System Compositor?

  System Compositor 是一個(gè) wayland compositor,只是運(yùn)行于系統(tǒng)全局范圍。

  為了懶人我這里稍微講解一下 wayland compositor 吧。 Wayland 不同于 X , 在 wayland 的世界里,只有

compositor 和 client。Client 利用各種 API (wayland 給出的示例使用的是 OpenGL ES, 但其實(shí) wayland

并不限制使用的繪圖 API 類型 ) 進(jìn)行窗口繪圖,然后將窗口的繪制結(jié)果直接提交給 compositor 合成到屏幕上。這樣 wayland 本身就不包含繪圖

API 而大大簡化了 wayland 的設(shè)計(jì)。Wayland compositor 可以同 X 一樣操作顯卡向屏幕輸出合成后的結(jié)果,也可以作為另一個(gè)

wayland compositor 的 client。

  對(duì)于多賬戶同時(shí)登錄的實(shí)現(xiàn),固然可以讓每一個(gè)本地 GUI 會(huì)話開啟一個(gè) wayland compositor,但是存在更好的辦法就是固定開啟一個(gè)

system compositor。而讓所有用戶會(huì)話的 wayland compositor 再作為 system compositor 的 client.

藉由 system compositor 的合成效果,進(jìn)行快速用戶切換也可以進(jìn)行一些視覺效果。而且 Xorg 本身也已經(jīng)支持作為 wayland client

運(yùn)行,這樣可以使用傳統(tǒng)的 X 提供桌面,而讓 wayland system compositor 實(shí)現(xiàn)終端切換。這還有一個(gè)好處,只有 wayland

system compositor 是以 root 運(yùn)行的,而用戶會(huì)話的 compositor 或 X 就不必以 root 權(quán)限運(yùn)行。因?yàn)?Wayland

非常輕量,所以 system compositor 可以作為系統(tǒng)級(jí)服務(wù)常駐內(nèi)存運(yùn)行。而因?yàn)橛辛?system compositor ,

內(nèi)核也不再需要實(shí)現(xiàn)虛擬終端了:只需要實(shí)現(xiàn)終端模擬器作為 system compositor 的 client

。由于是在用戶空間實(shí)現(xiàn)的,所有可以加入 UNICODE,矢量字體,國際化的書寫習(xí)慣等等的支持,再也不用受限于內(nèi)核啦。 Wayland

還是一個(gè)非常年輕的項(xiàng)目,Wayland system compositor 目前還只是設(shè)想中的概念,需要更多的人關(guān)注參與。筆者相信不久的將來 wayland

一定能大有作為。轉(zhuǎn)載

右擊終端,選擇編輯配置文件,接下來自己應(yīng)該會(huì)了

linux終端打出漢字的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux終端打出漢字,Linux終端實(shí)現(xiàn)中文輸入簡易教程,如何改造 Linux 虛擬終端顯示文字的信息別忘了在本站進(jìn)行查找喔。

成都創(chuàng)新互聯(lián)建站主營:成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開發(fā)制作等網(wǎng)站服務(wù)。


網(wǎng)頁名稱:Linux終端實(shí)現(xiàn)中文輸入簡易教程(linux終端打出漢字)
分享地址:http://m.5511xx.com/article/cciiddi.html