|
以下内容是转帖的:
Yudit
Gaspar Sinai 是一位生活在日本的匈牙利编程人员,他曾面临一个特别恼人的问题:他希望可以在同一文档中输入匈牙利文和日文,并能够在以后处理这些多语言文字时不会出错。于是,他于 1997 年开始编写他所说的 Unicode 编辑器,那个时候,在 GNU/Linux 和 UNIX 系统上,对 UTF-8 的支持还很少。
当时 Glibc V2.2 还没有发布,复合字符输入基于一些完全不同的标准,这些标准是在更深奥的 X 级别上编码的。这种情况特别复杂。此外,不容易得到使用 Unicode 映射的字体,在 UNIX 和 Linux 系统上工作的字体设计人员面临的是在不合作的 vim 实现或者无 Unicode 的 emacs 中测试字体的困难任务。这些问题都可以解决,但对定制的 emacs,需要具备比一般字体设计人员更多的了解。基于 Unicode 字体的终端处理还处在萌芽阶段,几乎不包括处理从右到左的脚本的功能。那时,在 GNU/Linux 和 UNIX 系统中表示中文、日文、印地文和阿拉伯文是非常困难的。
解决方案是一种相当独特的编辑器,称为 Yudit,它允许任何有一定手指灵活性并且有足够多字体的用户输入特别复杂的多脚本文字。Yudit 使用一种有些特殊、但又很简单的界面,该界面的底部有 GUI 化的命令行,您可以在 X 下运行的一个窗口中输入 Unicode 编码。通过一些相当有创意的键盘映射和字符拾取列表,可以用 U.S. 或者 UK 键盘输入日文和中文字符。还可以增加针对其他字符集的键盘映射。
在当前的版本(V2.7.8)中,Yudit 使用了 Gaspar Sinai,用 C++ 自己编写的窗口工具箱,这意味着移植很简单,可以得到针对所有 UNIX —— 包括 Apple OS X 和 GNU/Linux —— 的版本。因此,这个编辑器不需要通过终端来运行,尽管它需要 X Window 系统,并且是 UTF-8 编码的字体的一种测试工具。Yudit 还可以充当一种支持语法着色和上面提到的命令行访问的环境。
对于 Unicode 文字问题,Yudit 代表一种成熟的解决方案,这些问题是从在任何 UNIX 风格的或者类似 UNIX 系统上都没有支持 Unicode 的国际化架构的世界中诞生的。字符串处理方法是用 Perl 编写的,这使 Yudit 有了免费的、基于 UTF-8 的 Unicode 实现。这个编辑器有丰富的功能,但是它又独立于任何基本宽度字符或者 Unicode 支持的系统层。这方面的内容还请参阅其他参考资料。
Yudit Unicode Editor FAQ
========================
Version: 2.9.2
Author: Gaspar Sinai <gaspar (at) yudit.org>
Date: Tokyo 2006-05-21
Q1: 我如何再一次顯示本 FAQ?
A1: 在命令區鍵入 `help'. 同樣地你可以取得一個 testpage
如果你在命令區鍵入 `test'. 鍵入 'howto japanese',
'howto configure' 取得 howto pages.
Q2: 哪裡可以取得更新?
A2: 從 http://www.yudit.org/ 下載.
Q3: 我按了 Save Button 而沒有反應. 為何?
A3: Yudit 有一個命令列.
很有可能你只需按 Enter 鍵.
Q4: 在大多數顯示"Unix"的右手邊的 [Line Break] 是什麼?
A4: 行尾標記是:
UNIX='\n' - Unix line break
DOS='\r\n' - DOS line break
MAC='\r' - MAC line break
LS = U+2028 - Unicode line separator
PS = U+2029 - Unicode paragraph separator
在 Yudit 你可以混用 - 例如你可以建立一個檔案有 DOS
和 Unix 行尾. 但是如果可能的話應該避免混用.
Q5: 我如何取得編碼表列(-e 選項)?
A5: 在 shell 視窗鍵入 `man uniconv' 或 `uniconv -h'.
Q6: 我如何加入我的鍵盤輸入檔案?
A6: 此檔案可能已經存在於
/usr/share/yudit/data
此時你只需需要加入它到
/usr/share/yudit/config/yudit.properties
如果不是, 你需要轉換來源 kmap 檔案成為二進位格式:
mytool -type kmap -kmap My.kmap -rkmap My.kmap -write My.my
然後你需要複製 My.my 到 ~/.yudit/data
cp My.my ~/.yudit/data
請送給我你的 kmap 檔案 (原始碼) 以便將之含入下一版.
欲知更多關於 kmap 檔案的資訊, 請查閱
/usr/share/yudit/doc/keymap-format.txt
和 yudit 一起的 kmaps 原始碼, 位於
/usr/share/yudit/src/
注意 kmap 檔案也能被當作文字轉換和字型對照.
Q7: 我如何看見我自己語言的訊息?
A7: 下載原始碼並讀 README.TXT. 他告訴你如何做.
請將翻譯送給我, 我可以將之放入未來的版本.
Q8: 我如何加入一個 TrueType 字型?
A8: 建立一個 symbolic link 或放入字型到
/usr/share/yudit/fonts
並加入它到 "editor.fonts.TrueType"
/usr/share/yudit/config/yudit.properties
或你自己的 ~/.yudit/fonts 和 ~/.yudit/yudit.properties
Q9: 會有 Windows 版嗎?
A9: Yudit 有一個 abstract windowing toolkit. 這將使得移植
Yudit 更加快速. 例如像移植到 svgalib.
它只需花某些使用 Windows 並熟悉 C++ 的人一個星期的時間.
整個套件在 Visual Studio 命令列工具下編譯大部分正常,
但是畫面部分不能動因為我並沒有實作視窗功能.
我沒有計劃去作它但是我會散佈所有貢獻的程式碼.
Q10: 離達到 Unicode 編輯器的標準有多遠?
A10: 我嘗試去實作 Unicode 標準, 只要是合理的.
有一些 quirks, 請閱讀
/usr/share/yudit/doc/HOWTO-bidi.txt
關於雙向的資訊. 組字的支援很容易實作
(simple/STextData.cpp - 插入方法) 但是我不喜歡這想法
所以我只用修補的方式 - 如果我收到任何修補檔的話.
Q11: 我在命令列指定三個檔案, 但我現在只能看見一個.
A11: 它們在歷史緩衝區. 如果你到命令輸入區
並按下 Arrow-Up (或 Ctrl-k) 或 Arrow-Down (或 Ctrl-j)
你可以檢視此緩衝區.
Q12: 什麼是 hot-key bindings?
A12: 你可以看見大多數的它們 - 黃色提示將之用底線顯示.
大多數應該和 Shift 以及 Alt 鍵一起用.
本編輯器目前有下列 keybindings:
Escape - 切換命令模式與編輯模式
Home - 跳至游標位置 1,1
b - 上一頁
f - 下一頁
k - 上
n,j - 下
h - 左
l - 右
m - 刪除整行
x - 刪除選擇文字
v - 貼上上一個選擇文字
如果當移動游標時 Shift (或 Meta, 或 both) 被按住,
文字會被選擇.
滑鼠雙擊選擇一個字, 三擊選擇一整行.
Q13: 我如何讀一個 binary keymap 檔案的內容?
A13: 你可以產生一個來源傾印像這樣:
mytool -my /usr/share/yudit/data/GreekBible.my \
-convert mys -write GreekBible.mys
Q14: 我如何快速輸入一個 unicode 字元?
A14: 改變輸入為 [unicode], 輸入 uxxxx 或 Uxxxxxxxx 其中 x 為
一個十六進位數字.
Q15: 我如何替換?
A15: 在命令區你需要鍵入
replace old-text new-text
並對每一個 find/replace 按輸入鍵.
Q16: When can I find the handwriting input method?
A16: Click on the blue arrow (input method). Assign
freehand to one of the F keys.
Q17: How can I turn off syntax highlighting?
A17: From the command area by typing: 'syntax none'.
The available options are printed in error label
if you just type 'syntax'. You can set this in
the config file too.
Q18: How can I turn off word wrapping?
A18: From the command area by typing: 'wordwrap false'.
Typing 'wordwrap true' turns on word wrapping.
You can set this in the config file too.
附錄
====
1.1. Keymap 範例
以下範例是給一些附在 Yudit 的 kmaps.
Russian
它對照 Russian 發音字母. 比較不明顯的有:
yo yields ё , c yields ь, q yields ъ
x yields ы ee yields э
Hungarian
它對照 Hungarian 和 German 字元. 重音字元
能被用英語字元輸入跟著重音.
範例:
a' 變成 á , o: 變成 ö , o" 變成 ő
SS 產生 German ß , Ss 產生段落符號 §.
Kana
它對照 Romaji 到 Hiragana 和 Katakana. 小寫字母用於
Hiragana 而大寫用於 Katakana. 比較不明顯的有:
PP - 〒 <> - ◇ <>> - ◆ [] - □
[]] - ■ OO - ● <ESC>* - ☆ <ESC>** - ★
~ - ・ Oo - ◎ o+ - ♀ o- - ♂
oC - ℃ Y= - ¥
Mnemonic
用這對照你可以使用 RFC1345 助憶符號輸入
字元. 一些範例:
&0u - ☺ &0U - ☻ &tel - ☏ &PI - ¶
&SU - ☼ &cH- - ♥ &M2=♫ &sn - ش
SGML 對照 SGML 到 unicode.
範例:
♀ - ♀ ♠ - ♠, ╞ - ╞
█ - █ ░ - ░ ⅛ - ⅛
Hangul 對照 Roman 字譯為 Hangul 字元.
使用 ISO/TC46/SC2/WG4 字譯. 你
可以找到更多關於它的資料於
http://www.hansoft.com/hangul/faq.html
一些範例:
ulyanghan - 우량한 pyohyeon - 표현
cinseon - 친선, jageug - 자극 hwang geum 황금 |
-
|