<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>林光生活兩光過 &#187; screen</title>
	<atom:link href="http://blog.yzlin.org/tag/screen/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.yzlin.org</link>
	<description>人生就該悠閒地過，忠實地記錄下人生的軌跡</description>
	<lastBuildDate>Thu, 21 Jan 2010 15:46:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=3.0-alpha</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Screen + Unicode 補完計畫 (UAO)</title>
		<link>http://blog.yzlin.org/2008/11/11/66/</link>
		<comments>http://blog.yzlin.org/2008/11/11/66/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 00:14:06 +0000</pubDate>
		<dc:creator>yzlin</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[電腦技術]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[screen]]></category>

		<guid isPermaLink="false">http://blog.yzlin.org/?p=66</guid>
		<description><![CDATA[這篇其實很早就有草稿了，只是拖到最近才把它完成。
之前有談過如何設定 Gnu Screen 的方法，如果你常掛在 server 上，那應該對 Screen 這個好用的工具並不陌生。這篇主要是談怎麼 patch 它，來讓它支援 Unicode 補完計畫 (UAO)。
Unicode 補完計畫 (UAO) 對廣大的鄉民來說，可以說是再親切不過的了，BBS 電子佈告欄在台灣相當地盛行，但它底層僅僅支援 Big5，對於鄉民來說，看日文是件再正常不過的事了，但 Big5 畢竟是個急就章推出的編碼 (事實上，它也沒有一個既定的標準，唯一勉強可以稱得上標準的是 Big5-2003)，在當初的設計中並沒有加入日文假名等使用需求。所幸 Big5 有所謂的&#8221;使用者造字區&#8221;，提供給使用者自行定義新字，也有了後來的&#8221;倚天擴充字集&#8221;加入了包括日文假名等使用者特殊需求字。
然而，Windows 對於這塊由倚天自行定義的區域，在轉換成 Unicode 時也對應到了使用者造字區，而非它們各自對應到實際在 Unicode 的字，於是造成了 mapping 上的錯誤。UAO 便是為了解決這個問題而產生的，它做的事情只是將這段使用者造字區對應到 Unicode 正確的字。
上面說到的，是針對 Big5 &#60;-&#62; Unicode 的轉換發生在 Windows 的情況，可以利用安裝 UAO 來解決；但因為我的環境是 UTF-8，已經習慣用 Screen 提供的 Encoding Translation 功能來上 BBS 瀏覽文章了，但 Screen 預設提供的 Mapping Table 並沒有處理 [...]]]></description>
			<content:encoded><![CDATA[<p>這篇其實很早就有草稿了，只是拖到最近才把它完成。</p>
<p>之前有談過如何設定 Gnu Screen 的方法，如果你常掛在 server 上，那應該對 Screen 這個好用的工具並不陌生。這篇主要是談怎麼 patch 它，來讓它支援 Unicode 補完計畫 (UAO)。</p>
<p>Unicode 補完計畫 (UAO) 對廣大的鄉民來說，可以說是再親切不過的了，BBS 電子佈告欄在台灣相當地盛行，但它底層僅僅支援 Big5，對於鄉民來說，看日文是件再正常不過的事了，但 Big5 畢竟是個急就章推出的編碼 (事實上，它也沒有一個既定的標準，唯一勉強可以稱得上標準的是 Big5-2003)，在當初的設計中並沒有加入日文假名等使用需求。所幸 Big5 有所謂的&#8221;使用者造字區&#8221;，提供給使用者自行定義新字，也有了後來的&#8221;倚天擴充字集&#8221;加入了包括日文假名等使用者特殊需求字。</p>
<p>然而，Windows 對於這塊由倚天自行定義的區域，在轉換成 Unicode 時也對應到了使用者造字區，而非它們各自對應到實際在 Unicode 的字，於是造成了 mapping 上的錯誤。UAO 便是為了解決這個問題而產生的，它做的事情只是將這段使用者造字區對應到 Unicode 正確的字。</p>
<p>上面說到的，是針對 Big5 &lt;-&gt; Unicode 的轉換發生在 Windows 的情況，可以利用安裝 UAO 來解決；但因為我的環境是 UTF-8，已經習慣用 Screen 提供的 Encoding Translation 功能來上 BBS 瀏覽文章了，但 Screen 預設提供的 Mapping Table 並沒有處理 UAO，因此這種轉換是在 Screen 內部的情況便無法靠安裝 UAO 來解決，所以必須 patch。</p>
<p>其實許多前輩們已經針對這個部份提供了 Screen 的 <a href="http://tib.tw/tBoard/index.py?m=pl&amp;f=25&amp;t=564">UAO patch</a> 以及修正過的 Mapping Table，但他們提供的 Mapping Table 是以 UAO 2.42 所產生的 Binary 檔，這意味著我不清楚它是支援到 UAO 2.42 哪個程度，即使完整支援了 (這反而不好)，Binary 檔也代表它難以再編修和進 Version Control System。</p>
<p>所以我從 Firefox 3 的版本取出了內建的 Mapping Table 文字檔來做處理，Firefox 在 2 的版本已經內建單向處理 UAO 的功能了，所以可以取其 Big5 -&gt; Unicode 單向的 Mapping Table 來做修改。修改後再利用<a href="http://www.csie.ntu.edu.tw/~r92030/project/big5/">轉換程式</a>編成 Binary 檔便可替代原本 Screen 當中的 &#8220;18&#8243; 檔 (也就是 Big5 &lt;-&gt; Unicode Mapping Table)。</p>
<p>利用修正過後的 Screen 便可看到在日文假名以及某些特殊字框的顯示正常很多了；但是實際使用後會發現一個問題，就是對於某些 Double Mapping 的字會優先轉換到 0&#215;8140-0xA0FE 這段擴充區 (這裡所謂的 Double Mapping 是指多個 Big5 的字對應到同一個 Unicode 的字，例如 0xB86D 和 0&#215;82AA 都是對應到 0&#215;7F6E，一個是正常區的，另一個是擴充區的)，而在當初的 Mapping Table 文字檔便是依造 Big5 的字碼來排序，很不巧的 0&#215;8140-0xA0FE 這段擴充區會放置在最前面；而又剛好 Screen 的 Mapping Table 是同時做雙向轉換的，針對這種 Double Mapping 的情況，它會以第一個找到的為優先，這便造成了某些不需 UAO 便可閱讀的字，變成需要 UAO 才能閱讀了，而這篇文章是你打的。解決方式便是將這段擴充區移到 Mapping Table 的最後面，讓正常區的字優先權較高。於是最後的 <a href="http://file.yzlin.org/uao_big5uni.txt">Mapping Table 表</a>便誕生了，我在每行最後都有加上 UTF-8 所對應到的字。</p>
<p>最後的比較圖如下：<br />
<a title="Screen_with_different_mapping_table by Yi-Jheng, Lin (Alex), on Flickr" href="http://www.flickr.com/photos/yzlin1985/3019998111/"><img src="http://farm4.static.flickr.com/3212/3019998111_6d8c6c8b50.jpg" alt="Screen_with_different_mapping_table" width="500" height="370" /></a></p>
<p>參考資料：</p>
<ul>
<li>http://moztw.org/docs/big5/</li>
<li><a href="http://uao.cpatch.org">Unicode 補完計畫</a></li>
</ul>
<p>P.S. 其實 UAO 在本意上是良好的，但是作法我不太推崇，畢竟它不是一個標準，只是為了配合 BBS 所產生的過渡產物，所以讓 Screen 支援 UAO 僅是為了讓瀏覽 BBS 文章更方便而已，在其他環境下，我還是建議以 Unicode 為主，畢竟它是一個標準，支援度又高，Big5 就讓它慢慢走向歷史吧！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.yzlin.org/2008/11/11/66/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Tips of Setting Workstation Environment</title>
		<link>http://blog.yzlin.org/2008/11/11/68/</link>
		<comments>http://blog.yzlin.org/2008/11/11/68/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 18:16:10 +0000</pubDate>
		<dc:creator>yzlin</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[NCTUCS]]></category>
		<category><![CDATA[工作記錄]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[電腦技術]]></category>
		<category><![CDATA[Finch]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Mutt]]></category>
		<category><![CDATA[screen]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.yzlin.org/?p=68</guid>
		<description><![CDATA[這份投影片是之前在系計中內部分享的，整理了一下 share 出來，裡面有些嘴砲請自動略過 XD。有錯也請指正  
]]></description>
			<content:encoded><![CDATA[<p>這份投影片是之前在系計中內部分享的，整理了一下 <a href="http://file.yzlin.org/the_tips_of_setting_workstation_environment.pdf">share 出來</a>，裡面有些嘴砲請自動略過 XD。有錯也請指正 <img src='http://blog.yzlin.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.yzlin.org/2008/11/11/68/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make Your VIM &amp; Screen Environment Comfortable</title>
		<link>http://blog.yzlin.org/2008/08/20/53/</link>
		<comments>http://blog.yzlin.org/2008/08/20/53/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 07:27:49 +0000</pubDate>
		<dc:creator>yzlin</dc:creator>
				<category><![CDATA[工具]]></category>
		<category><![CDATA[電腦技術]]></category>
		<category><![CDATA[screen]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.yzlin.org/?p=53</guid>
		<description><![CDATA[這份 slide 是之前在 Y 社內部 Intern Sharing 所準備的，算是小技巧大集合，分享出來給大家，希望會有幫助。
裡面提到的大多都是建立在「我所認為舒服的環境」的前提上所給的技巧和設定；每個人有每個人認為舒服的設定，這是很主觀的，所以純粹只是當參考。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://vip.cs.nctu.edu.tw/~yzlin/slide/make_your_vim_and_screen_env_comfortable.pdf">這份 slide</a> 是之前在 Y 社內部 Intern Sharing 所準備的，算是小技巧大集合，分享出來給大家，希望會有幫助。</p>
<p>裡面提到的大多都是建立在<strong>「我所認為舒服的環境」</strong>的前提上所給的技巧和設定；每個人有每個人認為舒服的設定，這是很主觀的，所以純粹只是當參考。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.yzlin.org/2008/08/20/53/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screen Show Encoding Patch</title>
		<link>http://blog.yzlin.org/2008/05/08/24/</link>
		<comments>http://blog.yzlin.org/2008/05/08/24/#comments</comments>
		<pubDate>Wed, 07 May 2008 19:22:54 +0000</pubDate>
		<dc:creator>yzlin</dc:creator>
				<category><![CDATA[工具]]></category>
		<category><![CDATA[電腦技術]]></category>
		<category><![CDATA[Patch]]></category>
		<category><![CDATA[screen]]></category>

		<guid isPermaLink="false">http://blog.yzlin.org/?p=24</guid>
		<description><![CDATA[Screen 本身提供了 Encoding 的功能，可以針對單一 window 設定其 encoding，它會自動轉換，這個功能很有用，只是我個人龜毛了點，覺得每次都還要用 &#8220;Ctrl-A i&#8221; show 出 info 來查看目前的 encoding 為何有點多此一舉。我覺得 caption 和 hardstatus 都應該多加一個參數來表示目前的 encoding，可是很遺憾地它沒有提供，所以我乾脆自己 hack，這樣便可以在 caption 和 hardstatus 裡加一個新的參數 &#8220;%e&#8221; 用來顯示目前的 encoding，下面是我的設定：

caption always "%{.KW} %-w%{.mW}[%n] %t%{.KW}%+w"
hardstatus alwayslastline "%=%{..M}%e  %{..G}%H %{..Y} %c %{..R} %d/%m/%Y %{.K} Load: %l %{wb}"

顯示出來的結果會像這樣：

每次改變 encoding，它會自動更新，切換 window 也會更新成目前 window 所用的 encoding。
P.S. 我的 patch 檔是針對 FreeBSD ports [...]]]></description>
			<content:encoded><![CDATA[<p>Screen 本身提供了 Encoding 的功能，可以針對單一 window 設定其 encoding，它會自動轉換，這個功能很有用，只是我個人龜毛了點，覺得每次都還要用 &#8220;Ctrl-A i&#8221; show 出 info 來查看目前的 encoding 為何有點多此一舉。我覺得 caption 和 hardstatus 都應該多加一個參數來表示目前的 encoding，可是很遺憾地它沒有提供，所以我<a href="http://vip.cs.nctu.edu.tw/~yzlin/screen/">乾脆自己 hack</a>，這樣便可以在 caption 和 hardstatus 裡加一個新的參數 &#8220;%e&#8221; 用來顯示目前的 encoding，下面是我的設定：</p>
<blockquote>
<pre>caption always "%{.KW} %-w%{.mW}[%n] %t%{.KW}%+w"
hardstatus alwayslastline "%=%{..M}%e  %{..G}%H %{..Y} %c %{..R} %d/%m/%Y %{.K} Load: %l %{wb}"</pre>
</blockquote>
<p>顯示出來的結果會像這樣：<br />
<a title="screen - show encoding by Yi-Jheng, Lin (Alex), on Flickr" href="http://www.flickr.com/photos/yzlin1985/2474456166/"><img src="http://farm3.static.flickr.com/2403/2474456166_4eebf90225_o.jpg" alt="screen - show encoding" width="448" height="38" /></a><br />
每次改變 encoding，它會自動更新，切換 window 也會更新成目前 window 所用的 encoding。</p>
<p>P.S. 我的 patch 檔是針對 FreeBSD ports 裡 sysutils/screen 將所有 option 都編進去後再改的。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.yzlin.org/2008/05/08/24/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
