2007年8月31日 星期五

設定 Gnome-Terminal 預設視窗大小

/usr/bin/gnome-terminal --geometry=80x45

點選你的 Terminal Icon 將啟動指令新增 --geometry=80x45 即可,這樣會得到寬度 80 欄,45 行的大小。

2007年8月30日 星期四

追風箏的孩子

心情低落的早上過完,下午三點便去誠品,原本計畫去找朱少麟的《燕子》來看。因為之前 S 小姐喜歡這本書,於是為了想趁假日多讀點閒書,我像是尋找知道不能說的秘密一般,前往尋找此書。不過店內只剩下「三合一」,問過店員之後知道已經沒有其他單本的《燕子》,只好罷手。

隨處在誠品內亂逛,像是沒有挑一本書出來讀就不甘心似的。首先我找了一本... 該死,我居然忘了書名。雖然隱隱約約腦中還殘留著那本書的畫面,白白濛濛的,好像有棵樹,不過已經枯了,封面上有五、六個字。可惡,還是看不清楚,只好作罷。

腦袋不靈光。

那本《不知道叫什麼的書》耗了我一些時間讀,虧他還有一堆推薦文,不過在我看來都是屁。那本書讀罷二分之一,說盡瑣碎無聊的事,就我看來書裡自以為的幽默,我一點也不覺得好笑 ( 美國人的幽默 ? ) 。甚有部份是和同性戀有關,和神父發生性關係 ( 男同志 ) 、變性、口交。

無言。

於是接下來挑選了另一本書來讀,是大家都和我推薦的《追風箏的孩子》,我一直都沒有把那些大家推薦的好書拿來讀,我一直沒有讀文學作品的原因之一,是因為我好一陣子沉浸在電腦技術等書籍,毫無吸收人文藝術的慾望,原因之二是好一陣子都在準備考試 ... ( 總之就是都在忙的意思啦 XD )

通常一本書如果讀了三分之一還沒能抓住你的心,就可以換本讀了。反之,就是能捉住人心的書 ( 好書? ) 。此書描寫的是在阿富汗的阿喀爾城鎮的「兩個非常要好的小孩」的友情故事,並且包含了戰爭、背叛、懦弱、親情等元素。

當然也不只友情,只是阿米爾想爭取父親的寵愛而....

接下來就爆雷了。

我一方面非常喜歡哈山的單純跟忠心,一方面又討厭主角的懦弱。阿米爾的父親與哈山都是見義勇為的類型,非常講義氣。阿米爾因為不夠男子氣概而不能得到父親的認同,歷經一場風箏比賽的廝殺,阿米爾贏了,也幫贏得父親的光榮,但誰知道這場勝利是骯髒的?哈山受盡屈辱而讓阿米爾能贏得父親的認同。哈山為阿米爾上刀山下油鍋,不管阿米爾幾次諷刺他、嘲笑他,都豪無怨言,還能天真的希望能和阿米爾和好如初,而當他越是如此,阿米爾越是惱羞成怒。他雖然羞於面對哈山,卻又再次背叛哈山。

然而這純潔的友情就因為阿米爾的懦弱、袖手旁觀,而導致哈山在 26 年後被戰爭的迫害而死在街頭。阿米爾怎麼喚也喚不回他天真無邪的「同父異母的弟弟」,只好從哈山的孩子身上得到補償,或者補償哈山。

一如後來阿米爾的父親為同車的夫妻正義的挺身而出擋下了俄國士兵無理的侵犯 ( 差點就死在車上 ) ,阿米爾在得知哈山被殺害後,便前往被塔利班佔領的阿喀爾,想帶回哈山的小孩。

而在與那小時候的惡人 ( 當初欺負哈山的那人 ) 打鬥時得到心理的補償,雖然最後的勝利來自哈山小孩的哈山式攻擊才將那惡人的眼睛打爆。 XD

阿米爾小時的故事,也不禁讓我想起小時的我 - 體弱、沒有勇氣、喜愛閱讀 ( 只是我讀的不多、寫也寫不好 XD )。一位善良的朋友總是在我弱勢之時為我挺身而出,有好一陣子他都會替我說話,讓我在團體中不遭到排擠。我還記得他的名字,他叫做張中宇。他同哈山那樣單純善良,我也一直待他很好,總是會帶家裏零食和他分享 ( 那時家裏是雜貨店 ) ,這樣的友情一直非常順利,只是我想我們很幸運的沒有遭受到像阿米爾那樣的考驗。

讀完此書,我前一刻的價值觀已經遭到翻覆,見識不多的我讀了如此對戰爭描繪深刻的作品,不禁讓我對我們現有的生存方式感到感慨,聰不聰明倒也沒這麼重要了,人生一眨眼就過去了,歲月摧人老,有什麼知識又是比友情、親情更重要的呢?

我突然想到 《奪魂鋸》 裡頭說的一句不錯的話 -『當你知道要珍惜的時候,總是因為面對死亡這個動機,才懂得珍惜。』人都是如此,當面對死亡與戰爭之時,才懂得珍惜又有何用呢?

當店門關的時候也正是我倉促讀完此書最後一頁的時刻,雖然我讀的不快 ( 為何要快呢?能夠慢慢的咀嚼文中的奧妙與味道才是閱讀的趣味所在。 )

回程的時候經過一條街,想起有位國中同學就住那裡,我還記得他姓陶,綽號叫『掏雞雞』,本名是.... ( 該死的,我又忘記了 ,居然本名記不住,這麼難聽的綽號還記得起來 )

不過我還記得當時是玩板 ( 滑板 ) 的同伴,這位掏先生也是三分鐘熱度出名,每次出來練板,就開始發揮打嘴砲的功力。 ( 笑 )

我還記得國三,我「曾有」個好友蔡耀仲,只不過我們彼此都沒有同哈山那樣的善良單純,有低頭向對方和好的勇氣。 他本人現在應該還在哥斯大黎加吧?

未來還有好多事得面對的呢!

[轉錄] 追超級正妹

雖然不喜歡轉文章到部落格上,不過這篇值得一看。
也點出了現實之處啊! :-)
-------
作者: triste () 看板: CATCH
標題: 追超級正妹
時間: Wed Mar 22 01:47:51 2006


這篇可信度多少我不知道,我是整理寫給自己看的。


電動打到最後,主角一路冒險歷鍊多了,等級自然就會提升
,眼光也會愈來愈遠大。

想要打魔王。


我也一樣。

女人的外在在我的評價之中,真的沒有到偏執的地步。
加上我受苦於前幾任最後的紛擾,現在認識女生性格番不番擺在決定性的位置。
所以理論上,外在似乎更不重要了。

只是阿,窈窕淑女,君子果然真的好逑。

我對於眼睛漂亮,皮膚白,笑容可愛會打扮的女生,真的特別容易有感覺。

有一次無聊細數這十幾年來有過曖眛的女生,
漂亮美麗度竟是穩定的隨年齡成正比關係。=.=a

忽然懂了,內在變成更主要的決定要不要在一起的因素。

外在依然是門檻。

只是隨著自身成長所帶來的經驗跟自信,這門檻愈來愈高..........

(笑)

原來無形中,我正在打魔王。

不過,我終究有記得remember who I am。
管他打不贏打得贏再這裡胡亂分析看看。


追正妹的前提大概是,真心一定得跟眾多追求者比大顆。
『各項』條件,一定都致少要有平均值以上。
技巧下面說。

概括性的分分看,一堆例外是正常。
以下的所有『女生』,通通附加條件『外在很優。』



第一種是幼嫩學生妹,用來形容這種應該就是未上市的績優股。
主要分類的取決是年齡,年齡大概分布在16~19。
其實吸引這類的主要條件是帥,有型,幽默,浪漫。
嗯他們比較單純吧,戀愛的夢幻想像很多是來自大眾媒體來的。
不諱言,以一個情場老手去讓他們有感覺是真的蠻容易的。
因為他們體質上見識比較少,也較單純。所以很容易感動,也容易感到新奇。

嗯,有帶過營隊的就知道,一些很鳥的笑點,很肥皂的劇情,對高中生依然是掌聲不斷,
蕩氣迴腸。

難度是近水樓台的問題,總不能回頭念高中吧。
不過話說回來,關鍵也在近水樓台,沒看過很多剛升大一的正妹,三下兩頭,就輕鬆被
同系學長或同校學伴追走了。
除了條件之外,露於外的深情款款也會很有用。


第二種也是學生妹,只是限定變得更廣,所有沒入社會的學生妹。
年齡大約19~22。
這種情形,大概談過兩三次戀愛,享受過n個追求者。
開始了解到自己在異性間其實滿有魅力的。

衍伸成下面幾種類型。

2a
正歸正,還是對自己沒自信。
不要懷疑,有非常多外在上看來讓人眼睛一亮的女生,其實對自己的內在某處很沒自信。
他往往因為成長時期發生的某些事情,而對自己的某向人格特質沒自信。
因此,她反而會異常討厭別人光有外在的美好去肯定他的價值。
因為她沒自信的是在內在的某處。

好處是你的外在條件,可能不用非常出色搶眼。
但是你必須要具備很敏銳的觀察力和耐心,了解他沒失落的根源。
也就是說,一旦你是草包,OUT的機率很高。
他更需要的不是漫天花雨的甜言蜜語,而是一個人能listen and observe。
你也須要不斷主動展現出自己美好而強悍的的一面。
因為缺少自信,所以你身上發光的自信會更迷人。

才華,跟內在反而是打動他的關鍵吧。

2b
很漂亮,性格很開朗活潑,異性同性朋友緣不錯。
嚴謹的來說,應該不異常須要愛情的都是這類。

追這種的,老實講他還蠻完整的,應該家庭,朋友圈都很完整。
生活本來就很快樂了,自然不會異常強力渴望愛情。
所以很難逮到他出現弱點,讓我們表現出重要性的機會。

部位必需放在長期戰略。

也就是得盡力融入他的生活圈,朋友補習班社團。
然後,幽默往往是能不能勝出的關鍵。
一旦你能成為在他身邊出現頻率最高,又最能讓他開心的人。
才有機會逮到他悶煩的時候,漸漸走進他心裡。

用心往往是突破口。
一天兩天生活快快樂樂看不見你的不同,一年兩年總有風風雨雨會讓他看到你對他的用心



2c
漂亮但是同性朋友似乎偏少,異性朋友偏多。
不知道準不準。
不過,我一路看過來,蠻多會比較現實,有點嬌氣。

有點小公主的味道。

他週遭的異性朋友眾多,選擇也眾多。
所以外在條件上要求的門檻會更高。

這種曖曖內含光,老實講會比較吃香。

我曾經跟一個有演過偶像劇,常拍廣告的女生走得很近。
前半段用盡約會高手,走得是非常曖眛,跑者是一直往前面的壘包推進。
不過最後雙方沒在一起的原因,卻是我有時候會展現出比較強悍的手碗跟自信。
對向來捧在雲端的她,會有相當的壓力和不習慣。
不過我也對她的嬌氣有點受不了啦,哈哈,算是因了解而當朋友的優良案例吧。

所以做事上比較謙虛,誠墾為他默默付出,傻傻做,
言語上卻還是能風趣好玩逗他開心的會比較有機會勝出。

2d
這算是最難的類型,真心技巧機乎用不太上。

有些女生性格比較積極,老實講,她心中已經有一個她最想要的愛情樣子。
也就是說,你不是那樣子,追他千遍機乎也沒有用。

真心技巧都是屁。

他只會覺得愧欠你而覺得煩燥。會全面性不想理你。

說最難,是因為運氣的機會太大。

當然,還是有一步一步爬的機會。
第一次翻完不是他要的,就用朋友位置努力打聽到她想要的是哪樣的型。
然後乖乖消失一段長時間。

重新再出現,再建立新的第一眼印像。

再一翻兩瞪眼一次。
翻到對為止!!


3
出社會的女生,這種女生普遍都是比較會打扮。
也因為打扮外在上的付出,現實會對他們而言看得更真切。
他們知道真心卡片不能換到名牌,小朋友看地球可以。
他們知道摩拖車或許方便,可是汽車可以讓他舒舒服服。
他們知道長得帥強壯,或許可以愉快的戀愛。
但有工作又成熟的男人,更能給他長久的相伴。

20歲以後,出社會年齡愈久,這些就會愈強烈。
沒辦法,誰叫你的對手都是社會大學裡的,而這些都只是基本盤而已

對學生妹有用的技巧應該對他也沒什用了。
當一個人你問他約會是做什?
她可以很明確的回答你,不就吃飯看電影逛街。
那代表他大概已經是老油條了。
因為上面那些項目,大概一語道破約會的真意阿QQ"


20歲以前,出社會工作的,反到可能因為跟同事的年齡差距,比較愛跟學生時期的玩在一
起。
所以我大概,會把他當做學生妹追求吧。

嗯,這部份主要憑我以前在夜店工作的印象跟聊天說的。

想追這型的,先好好畢業,當完兵,找份穩定工作,再去思考吧!!


--
※ 發信站: 批踢踢實業坊(ptt.cc)

2007年8月29日 星期三

Blogger - 設定 Widget 只出現在首頁或單篇文章

點選 expand template 之後,找尋你想設定的 widget code,如下範例:
<b:widget id='HTML4' locked='false' title='Del.icio.us Tagometer' type='HTML'>
<b:includable id='main'>

<!-- only display title if it's non-empty -->
<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>

<b:include name='quickedit'/>

</b:includable>
</b:widget>
設定此頁要在單篇文章上出現,在 <b:includable id='main'> 之後加上

<b:if cond='data:blog.pageType == "item"'>

若是要設成首頁,就加上

<b:if cond='data:blog.url == data:blog.homepageUrl'>

接著在 includable 的終止標籤之前加上 if 的終止標籤,讓整個 IF 敘述將 Widget 顯示的部份包起來。

</b:if>

改完之後的範例如下:
<b:widget id='HTML4' locked='false' title='Del.icio.us Tagometer' type='HTML'>
<b:includable id='main'>

<b:if cond='data:blog.pageType == "item"'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>

<b:include name='quickedit'/>
</b:if>

</b:includable>
</b:widget>

2007年8月28日 星期二

I , WEAK

想做的事情好多。當這些沒有辦法達成之時,才發覺自己仍是身陷非理想的環境之中。

直接反映在自己身上的就是 - I , WEAK

陳綺貞

托堂姊的福,才能一起去陳綺貞這次在成大體育館的演唱會。

因為她喜歡古色古香的文物,所以我們先後逛了成大、孔廟、古街,接著在小巷內雅緻的咖啡廳內吃了下午茶,聊了好多。









( 不過好像都是她在聽我講我的回憶而已... XD )

路上還發現一個大烏龍,就是我居然把一些照片拍到 DV Tape 裡頭去了,所以沒辦法直接拿不出來,有些照片就 Lost 了。另一個烏龍是... 電池沒裝好,結果以為沒有電,所以有些照片就沒拍到... 後來才拿出來拍。 XD

終於晚上到了,入場前排隊



取票。 :)



入場囉



整個演唱會不僅聲音效果方面做的很好,視覺上也很棒。

由於一整天都在想著以前的回憶,所以當她一奏吉他,就....

如果用顏色形容的話,一開始是純白色、淡紫色的,慢慢轉為粉紅色、藍色,高潮的時候是熱情的紅色、黑色,接著轉換成幸福的黃色和橘色,最後在平和的淡藍色結束了。



綺貞的歌有種「撫慰人的心」的作用,所以想必喜歡綺貞的歌迷心靈或許都有某些傷痕吧!( 誰沒有傷呢? ) 正也因為如此,坐在台下反而有種溫暖的感覺,而非如狂熱的亂流一般。

失敗者的飛翔
告訴我
小步舞曲

這三首也都好好聽呢。

最後要結束的時候...



安口了好幾首,要結束了。

結果最後又回來繼續唱了兩三首。 XD

2007年8月27日 星期一

Firebug

Firefox/Ubuntu 一直都有 clipboard 資料流失的問題,所以今天去 report bug .. 效率其實還挺不錯的,回應很快,不過回覆如下:
Sarah Hobbs :

This is true for any application - I'd suggest you try something like
glipper, which holds clipboard data throughout your gnome session.

** Changed in: firefox (Ubuntu)
Status: New => Won't Fix
所以到底是什麼原因呢?-.- 不過使用 gclipper 還不錯,可以備份 clipboard data 。

2007年8月26日 星期日

初識 Python

昨天早上 Survey 了一下 Python ,發覺 Python 和 Perl 的哲學比較起來,是兩種對比。

Python 設計的很簡潔,怎麼說呢? Python 把分號拿掉了,並且嚴格限制縮排,此外 {,} 也拿掉了,所以語法很清晰,不用花精力在調整括號的排版,也不會有差異太大的 Coding Style。除此之外,物件導向方面設計的比較完善,譬如說

"String1".startswith("Str")

同樣的語法在 Perl 裡頭就無法做到了。

Python 相較於 Perl ,Perl 強調的是自由度,甚至自由到能夠改變剖析的語法,另外 perl 走的哲學就是 『條條大路通羅馬』一種目的可以用多種方式達到,可以很寫的很髒 - 可寫不可讀,或者寫的很精緻。 Perl 也提供很多的方便性,譬如樣式比對可由自己想要的字元取代雙引號,如此一來可以避免過多的跳脫的反斜線,像是 rx{ls},qq/String/,q-String- ;呼叫函數可以加上圓括號或是不加也可等等,透徹的利用很多特殊符號來達到簡略迅速的寫法。

目前的 Perl 最大的一個缺點就是在物件導向方面不大自然,要透過 bless 函數利用 reference 的方式達到物件導向的目的,所以語法上比較不是這麼的簡潔,如下範例 ( 取自 WWW-Mechanize-1.30-jFIVC5 的 Image.pm :
package WWW::Mechanize::Image;

...略

sub new {
my $class = shift ;
my $parms = shift || {} ;

my $self = {};

for my $parm ( qw( url base tag height width alt name ) ) {
$self->{$parm} = $parms->{$parm} if defined $parms->{$parm};
}

return bless $self, $class;
}
你可以發現要透過 shift class , 接著要實作一個雜湊參照,接著利用 bless 使他成為物件,最後傳回。

Perl 在傳遞參數方面也是有些累贅,得利用 shift 或是 @_ 來取得參數。不過以上問題在 Perl 6 都會有革命性的改進,想更進一步瞭解可以參考 Perl 6 Synopses

Python 在這方面顯得精簡許多,如下範例 ( 取自 Simple Sample of Python )
class PrinterFormatter:
def __init__(self, filename, page_len=58):
# Save the time of creation for inclusion in the header
import time
self.now=time.asctime(time.localtime(time.time()))

.... 略

def write_header(self):
# If the header for this page has just been written, don't
# write another one.

.... 略
由於省略了大括號,只利用冒號代表接續的敘述,強迫縮排,參數傳遞的寫法也比較乾淨。簡單的說, Python 在語法的限制比較高,不過也因為如此而能夠將程式碼的可讀性提高。

另外發覺 Python 與 Application 的 binding 也都不錯,而 Perl 的模組量多非常豐富、範圍較廣。所以各有其優缺點。

以上,初步認識 Python 之感想。如有錯誤煩請指正,小弟懂的不多,請多多指教,謝謝。 :-)

告訴我

曲︰陳綺貞
詞︰陳綺貞
編︰林暐哲/陳綺貞

看沉默的電話 它什麼都不說
看電視的畫面 它無聲的閃動
看街上的行人 跟我擦肩而過
整個世界太冷漠 我沒有力氣再往前走

看你緊閉的嘴唇 它什麼都不說
看你飄忽的眼神 它無情的閃躲
看你和我的回憶 跟我擦肩而過
你的改變太冷漠 我沒有勇氣大聲地說

告訴我 你不是真的離開我
你也不願這樣的夜裡 把難過留給我
告訴我 你不是真的離開我
你是要懲罰我的愛讓你失去自由
告訴我

2007年8月25日 星期六

把好一段時間積在心裡的心事都倒出來了,說到我自己都哽咽了是怎麼一回事呢?好像大家分手的理由都差不多,大多都是 "對方無法滿足自己的需求" , " 沒感覺了" , "差別太多" , "我們是不同世界的人" ...

不過客人來家裡,就會有好多好吃的東西上桌。阿~~真幸福。

2007年8月24日 星期五

兩個資訊人至少要用過的東西

我又在說廢話了。

其中一個是 RSS Reader ,可以用 Google Reader 或是 Bloglines 等服務 ,另一個則是 Del.icio.usHemiDemi

而且,都這個年頭了,如果你還不知道什麼是 RSS Feed 那就太糟糕了, RSS 已經是行之有年的東西.. ( 好像快3,4年了? )

Del.icio.us , HemiDemi 可以使你更能掌握網路上流動的訊息,哪些網頁被收錄的最多,以及你可以訂閱你有興趣的標籤...

不過以上兩者使用者必須控制自己陷入的程度,否則很容易沈淪,Google Reader 會讓你永遠都讀不完 Feed ,變成你逃避工作的藉口。 使用 Del.icio.us 做為收錄網址工具,則要避免『收集而不閱讀』的行為,否則你的 Del.icio.us 只會變成永遠也不會拿出來翻的倉庫而已,若只是分享給其他人訂閱,那就例外。

我又在說廢話了。

2007年8月23日 星期四

卡住

卡在 Attribute Grammar ,一直對 IS-SI Dependency 很模糊,沒有搞清楚他的概念。

卡住了,就是這樣。

po 去 BBS 好像不是沒人會就是懶得回吧,學校老師也沒老師在搞這方面的,周圍的朋友更不用說了,所以還是得靠自己來吧!

一定至少要在兩週內前進到 Code Gen 才行。

甲烷是什麼

『甲烷是什麼?』我那小學剛畢業的老弟突然問說。

『甲烷是一種氣體,你放屁的時候就會排出來... 』 我回答

『甲烷是什麼?甲烷是什麼?甲烷是什麼?』他好像還不大滿意... XD

『去查百科全書一定有....』我說。

過了一陣子,他走過來,我正在做伏地挺身...

『你為什麼要做伏地挺身阿?是為了要排出甲烷嗎?』

XD....

『我們沒有,你才要 ... 』

使用 Emacs 發 Blog ( for Blogger Users )

Blogger 提供了 g-client 這個東西,在 Blogger Buzz 上有篇 g-client 的介紹,你可以掛在 emacs 上,用 emacs 來發文到 Blogger 上。

使用 SVN 的版本會比較好,位置在: http://emacspeak.googlecode.com/svn/trunk/lisp/g-client/

使用 SVN Checkout 回來

$ cd .emacs.d/
$ svn checkout http://emacspeak.googlecode.com/svn/trunk/lisp/g-client/


完成之後記得切進去編譯

$ make && make install

然後到 .emacs 內設定:
;; ===================== G-client
(add-to-list 'load-path "~/.emacs.d/g-client")
(load-library "g")
記得得先安裝 starttls 以及 curl 套件。使用 APT 安裝 starttls , curl :

$ sudo apt-get install starttls curl

發文方式為:
  1. M-x gblogger-blog , 會產生一個頁面
  2. M-x gblogger-new-entry , 可張貼新文章,將上述頁面其中之一要張貼的 Blog 的 postLink 連結複製起來,貼上去之後就可以開始編輯新文章。編輯文章可用 nxml 的套件。
  3. C-c C-c 張貼文章。
相關網址:

2007年8月22日 星期三

前幾天看到這句話,不過我忘了名字:

『 If you hang out with loser , you become loser 』

恩... 所以我是 Loser 嗎?

2007年8月21日 星期二

溝通

我一直覺得我在人際溝通方面開始有點障礙,一方面雖然一直嘗試以頓感將敏感壓制住,但總會使自己特別地不自然。或許倒也不是自己敏感的問題,我總是只把焦點放在自己的目標、自己是否聰明?、自己想學的東西、自己的生活,簡而言之,我就是個自我中心並且無可救藥的呆子。整天只想著跟電腦有關的東西,就連練琴、寫程式、看書,這些事情居然都只是一個人就能參與的活動,當然沒辦法注意到生活週遭其他事物。

雖然,我看起來並沒有忽略他們。

但我卻總是刻意迎合別人,看別人喜歡什麼東西,就聊什麼,就算不能討論,也能多問,而儘量不談關於自己的事物,不太有人想懂的,就算說了大概也沒幾個人會有興趣,因為週遭也太少人懂了,聊古典鋼琴?李斯特?

譬如某次有人問我說 『你最拿手的曲目是什麼呢? 』 我當場猶豫了一下,不過我還是說了:『恩.. 我比較喜歡彈蕭邦、李斯特 ... 』,話沒說完對方就一臉囧樣了,更別說接下去的話題。

我也曾嘗試說些朋友不曾接觸的東西,只不過大家總是興趣缺缺,所以發現情況不對,就得馬上適可而止,情況壞些,表面上可能看起來很 OK ,但是可能會有人在背後嫌你。

或許知識性的東西比較適合寫成文字給人閱讀,因為閱讀是選擇性的,只挑自己有興趣的部份來看即可,或者乾脆不看?

跟一般人相處也許沒這麼難,跟男人聊,就聊女人、汽車、電腦;跟女人聊,就裝甜嘴巴、講笑話、逗他們笑、聊電視劇、電影。只是如果你對這些都厭倦了呢?你願意為了迎合一個人,去看打死你也不想看的小說?改變自己原有的生活方式?一個人也許還好,更多人呢?

人的世界或許沒這麼複雜,只是如果距離普通人共同的事物太遠,就會接不上線罷了。我想,就是別讓自己佔滿了自己的生活,否則懂自己的人,也許最後就只有自己了。

2007年8月20日 星期一

Ubuntu - 中文字型設定

由於我的 Ubuntu 是英語係為主,因此使用 firefox 瀏覽時,遇到 utf-8 編碼的中文網頁,中文往往不能以 AR PL ShenHei Uni 來顯示,而我又想保留預設的 Sans , Serif 做為英文字型,不想在 firefox 內做修改,因此我做了以下修改:

修改 /etc/font/conf.d/65-nonlatin.conf

在 sans , serif 各底下的 prefer 標籤內的第一行加上

<family>AR PL ShanHeiSun Uni</family>

接著執行

$ sudo fc-cache -v

重開 firefox 就見效了。

Blogger

使用 Google 提供的 Blog Service,還是不免有許多缺點,前陣子我跟 Alan 抱怨說 Blogger 的功能限制很多,於是他問我說 『 我覺得已經很夠啦,你覺得 Blogger 還缺些什麼? 』 我一時也答不上話來。

Blogger 在設計上的出發點就是介面簡單為主,避免過度的複雜化,因此設定方面並無太多樣化的選擇。就連發文介面也是簡單的面板,也因此在使用上特別容易上手,只不過對於進階需求的使用者不夠用。想到此,我便想到人月神話一書中也提到系統複雜度的重要性,強大功能的系統,免不了很多東西會被複雜化,也因此會導致使用者不知如何使用,但是 Blogger 卻在複雜中保留了簡單。

Blogger 採取了管理介面簡單化的路線,一個頁面的功能選項不會太多也不會太少。主要的分類就只有三種: Posting , Settings , Template 。Blogger 雖然在介面上簡單,也保留了使用者進階調整的空間,也就是 Blogger 有自己的樣版語言,想在樣版上玩花樣的使用者就可更進一步的閱讀進階的樣版語言,個人化的空間很足夠,而不會將整個介面使用的複雜度提高,我覺得這是 Blogger 做的不錯的地方。

除此之外, Blogger 的特色就是穩定,Blogger 的服務很少停擺的,使用兩三年下來,唯一停擺的一次是我某天半夜一兩點的時候,不過過沒多久就好了。

除了穩定之外,還能有你自己的網域名稱,如 c9s.blogspot.com ,一個 blog 開的不夠多,也可以另外同時開好幾個並行管理。

缺點也是有。速度,blogger 的速度不快不慢,雖然原本的速度就不快了,但是當你樣版上載入的元件 ( widget ) 稍微多了一些,載入速度就會更慢,因為除了伺服端(Blogger)要替你複雜的樣版語言做轉換,此外,其他 widget 也會去外部抓取其他的東西。不過我相信樣版的部份 Blogger 應該是已經有做快取了,雖然如此基本款的樣版載入速度也沒有多快。如果使用過樂多的 Blog Service ,你就會知道靜態網頁在載入速度這方面特優,讓你不覺得你是在替一個龐然大物翻身。

除此之外,意見回應的資訊匯整做的不好,想要知道站上有那些人張貼了最新回應,得自己去掛 Javascript ,或者把 Comment 的 feed 抓來訂閱。但是訂閱 Comment feed 有個缺點,Blogger 只提供最新的五則訂閱項目,而 Comment feed 居然沒有文章標題,只是將回應的內容充當標題欄位使用而已。早期 Blogger 還未提供這個功能,卻是將此功能開放給第三方來開發,譬如說 coComment 的服務;coComment 要掛在 Blogger 上還會有無法適應的症狀,對於一般使用者來說也太過複雜,所以一直在 Blogger Beta 出現之前,這個就是 Blogger 的致命缺點。

Trackback 也是一個缺點,其他類型的 trackback 無法發送出去,只適用於 Blogger 內部的反向連結,也許 Google 是擔心有心使用者利用 Trackback 的機制提高網頁的 Page Rank,不過因此而犧牲此功能,還是有點遺憾。

張貼意見的繁瑣也是個問題,讀者在閱讀時若要張貼意見,則有兩種方式,其一為進入另一張貼意見的頁面,另一則為開啟新視窗張貼意見,此機制主要的目的是為了在張貼意見時可以做安全連線確認使用者,但是一方面速度就被拖慢了,等到確認完使用者身份,頁面還會重新載入一次,若是使用者沒注意到,剛打好的內容可以就會立刻被刷掉。

但整體而言,如果你喜好玩弄 Blog 面板,並且能夠忍受 Blogger 不快不慢的速度,那麼 Blogger 還是好的,主要的一點就是『簡單又複雜』。 :-)

Turkey March Variations - Volodos


這是 Volodos 改編的 Turkey March. 我只能說她真的是太猛了... XD

2007年8月19日 星期日

Carmen Variation - Horowitz


這是 Horowitz 改編的卡門變奏曲。恩... 炫技的東西還是別看太多的好,對身體不好。 XD

emacs g-client testing

Emacs g-client Test!! Cool!

2007年8月18日 星期六

Emacs Muse



Emacs Muse 是什麼?Emacs Muse 隸屬於 GNU Emacs 底下的 Project 之一,是一個類似於 emacs-wiki 的 extension ,不過功能更強大,他提供多種輸出格式,包括 html , latex , info .. 等等。

我使用 Emacs Muse 來做為我的筆記本,你也可以使用他來設計你自己的網頁、文件等等。

1.設置: 先抓 muse 回來

$ cd emacs.d
$ wget http://mwolson.org/static/dist/muse-latest.zip
$ unzip muse-latest.zip


2.編譯

$ cd muse-latest
$ make
$ sudo make install


3.修改 .emacs,新增:
(add-to-list 'load-path "~/.emacs.d/muse-latest/lisp")
(require 'muse-mode) ; load authoring mode
(require 'muse-html) ; load publishing styles I use
(require 'muse-latex)
(require 'muse-texinfo)
(require 'muse-docbook)
(require 'muse-project) ; publish files in projects
(require 'muse-wiki)
(require 'muse-book)

(setq muse-project-alist
'(("Website" ("~/MusePages" :default "index")
(:base "html" :path "~/public_html/muse")
))
)
4.建立資料夾

$ mkdir ~/MusePages
$ mkdir ~/public_html/muse


5.使用

開啟 emacs 之後, M-x muse-project-find-file RET ,接著 RET 就可開始編輯了。詳細的 markup 可參考:
每次要發佈只需要 C-c C-p 即可 publish 到 ~/public_html/muse 去。

相關文章:

Emacs 的行號設定 ( wb-line-number.el )



目前用過沒 bug 的行號顯示是這隻 wb-line-number.el ,設置方式很簡單:

$ cd .emacs.d/
$ wget http://homepage1.nifty.com/blankspace/emacs/wb-line-number.el


接著在 .emacs 內新增:

(set-scroll-bar-mode nil) ; no scroll bar, even in x-window system
(require 'wb-line-number)


要顯示行號時可用 M-x wb-line-number-toggle 。

缺點就是必須把捲軸關掉,否則畫面會挺醜的。

Emacs Note



恩,雖然 Emacs 很難用,可是還是不自覺的就開了 Emacs 來用。 XD 應該是因為還有很多東西可以探索吧!我覺得很有趣 :P

最近用了 snippet.el 和 emacs-wiki.el 這兩個 extension ,兩個都花了我很多時間搞,搞了很久才起來。此外,emacs-wiki 更是一堆 Bug ,不知道是不是因為我使用 22.1 + xft 的關係? 所以又退回去用舊版的 emacs-wiki ,好不容易起來了,又發現 emacs muse 這個更好用的東西,安裝整個順利,一下就能用了。 ( 歡樂 )

其實以上最主要吸引我的原因是可以產生 Wiki 的文件輸出,如此一來編輯靜態網頁就很方便,輸出的品質也不錯,可以參考這裡

此外還裝了 GNU Lisp Compiler ,Emacs 有個特色就是,寫好的 el 檔 ( Emacs LISP 檔 ),可以再對他做編譯的動作,此動作會把 .el 檔編譯成 .elc 檔,是以 byte-code 的方式儲存,這樣似乎有加快 emacs 載入的速度。

順便附上兩個連結:
Planet Lisp
Planet Emacsen

2007年8月17日 星期五

Flickr - 大家的 Emacs

Flickr tag:Emacs

看到這個,funny!



Sacha and Emacs

2007年8月16日 星期四

使用 Emacs 心得

好不容易把 GNU Emacs Manual 翻的差不多了,但覺得有點失望,而且很難用。原本在 Vim 內好用的東西似乎在 GNU Emacs 裡面都沒有,譬如說我常用的 ciw ci( ci{ 這些 Text Object Operator,而這些東西在 Emacs 裡頭,就得靠自己去寫 LISP 來達成,或者抓別人的外掛來用。

在游標移動方面,Emacs 使用的是 Ctrl+f,b,n,p ,距離很遠,和 Vim 的 hjkl 比起來就不是這麼直覺。選取文字區塊方面很容易讓手指打節,因為在 Emacs 裡頭,要用 Ctrl-Shift-2 也就是 ( Ctrl-@ ),在速度上就比 VIM 的大 V 慢很多了..

CC Mode 下,Emacs 不會自動幫你找對應的括號,VIM 則有。

行號在 Emacs 裡頭沒有預設,而使用外掛則有很多問題。

Emacs 沒有程式碼折疊,也是必須去找延伸套件來裝。

即使是在 CC Mode 下,另外提供的編輯功能也很有限,沒有像 VIM 那樣有好用的 Text Object 編輯功能可用。

Emacs 裡頭沒有內建 Tabpage 的功能,也是得另外裝延伸的 LISP 檔才行。( vimpulse.el )

因此裝起 Emacs 之後,自己另外調整、設定就變成非常重要,也因此才有人說,如果你把 .emacs 搞丟了,那你差不多可以不要用了。 XD

timchen 的 Blog 就讀到:
從前有一個喜愛使用emacs的人,
因為他慣用的 .emacs 被人弄丟了,
從此之後就使用了vi.

(註: 這個人的名字叫Tim O'reilly.)
由此可見 .emacs 設定檔案的重要性。

在啟動速度上, Emacs 比 Gvim 慢了些,推測應該是 Emacs 啟動之後才會讀其他 el 檔的關係。

也許是因為我一開始就是 Vim 的重度使用者,所以在使用 Emacs 的時候,非常的不適應,譬如說我常用的 hjkl , ZZ , HML , yy , p , dd 等,在 Emacs 裡頭似乎沒有針對行處理的快捷 ( vim 裡頭的 yy , dd , p ) ,所以也得自己寫 Lisp 才行。 Orz

不過 Emacs 最下方的 Command-Line 挺漂亮的,此外在 Completion 跟指令的及時說明都不錯。

Emacs 雖然在設定上的彈性跟潛力不錯,但是要熟透到比 Vim 好編輯還是得花上許多時間去『開發』自己想要的功能,想到這個就很痛苦,我覺得簡直是在浪費時間了,而且現有輪子用一用可能還會發現現有的輪子怎麼還不太可靠,譬如說 setnu , linum 都有一些 bug ....

對一開始沒用過 vim 的使用者來說 Emacs 應該會比較好上手,因為 Emacs 內編輯修改存檔沒有像 vim 那樣分模式,得用 insert mode 才能輸入,因此使用者可以像使用一般編輯器那樣照平常的方式輸入文字,然後存檔、關檔、開檔等等。

雖然講了這麼多,但其實 Emacs 還是不錯的,只是他給使用者更大的空間可以發揮,更多自由、個人化。譬如說,你可以在裡頭直接寫 LISP ,把許多小功能湊起來變大功能。 ( 這點方面其實與 VIM 非常相似 )

所以想用 Emacs 有個前提,就是你本身對 LISP 相當熟練才行,否則花上一兩個星期調整你的 Emacs 是很有可能的。

許多人可能想到 Emacs vs Vim 可能就會有一場聖戰要開打了吧?我搞不懂幹嘛癡迷到這樣?XD 不過在 wiki 上有個條目 "Editor war" 裡頭就引述了一段宗教似的文章: ( Emacs 的支持者 )
Truly, our responsibility to spread the Gospel of the Gnu is weighty.
Cleave to what is good. Remember the words the prophet Stallman
brought down from the Mount MIT, graved in Lisp on tablets of
crystalline lambda calculus.

Only this true: Emacs is pure.
All else is false.
Do not be misled by false gods like Vi, the Editor of the Beast.
Do not be seduced by Word, the Scarlet Woman of Babylon.
Do not be driven to madness by Xcode, the Blind Priest of the Children of Asherath.

When the wild winds of chaos blow, stay pure.
When the universe collapses in shards around you, stay holy.
When the gibbering hobgoblins of apostate Editors attack with shards
of broken syntax, seek the crystalline stillness within you.

Brethren, ensure that you (Meta-x-say-hallel-to-Emacs) daily for otherwise you will be lost.
When the Beast comes, only Emacs can save you.

This was brought to you as a public service by the Holy and Ineffable Church of The Mighty Emacs.
SUPPORT THIS CRUSADE WITH YOUR DONATIONS. EMAIL THE STILL BEATING
HEART OF A VILE VI USER TO emacs-highpriest@god-hates-vi-users
很有趣吧,這讓我想到...眾阿拉、耶穌信徒彼此之間的聖戰。 XD

An Tutorial Introduction to GNU Emacs
GNU Emacs Lisp Programming Reference
An introduction to programming in Emacs Lisp

The Next Generation of C++

下一代的 C++ , 請看此 C++0x - An Overview

The Design of C++0x [pdf]

A Brief Look at C++0x

嘔吐味的 Beethoven Op13

今天不知怎的,走在路上突然想起 Beethoven Op13 的第二樂章,真好聽,於是吹起口哨來。

回到家就把小貝的 Op13 彈了一下,發覺還是回頭彈彈簡單的東西比較好,比較有成就感,來回彈個兩三遍就起來了,而且我挺喜歡小貝的斷奏和裝飾音。 :P

只是彈著彈著突然有聞到嘔吐味。。。

soda!

然後才想到,這本 Sonata 之前買來就是二手的,該不會是前一任的書主在上面吐了什麼東西吧?!= =

總之,第二樂章的 fu 都被嘔吐味破壞掉了。 XD

2007年8月13日 星期一

Monaco Font


Windows + Gvim + Monaco


Linux + Gvim + Monaco

終於有 Monaco 了,我也忘了在哪載的了,總之找了好久才找到。 總算有取代 MS 的 Consolas 跟 Courier New 等字體的方案了。

偷偷說,我覺得 MS 的 Consolas 根本就是抄 Monaco 的。

# 補: 可在此處下載 Return of Monaco
# Linux 放到 /usr/share/fonts/truetype/ 底下即可。 記得 "fc-cache"

Bash Tips - Command-line editing

Bash 下編輯指令的一些快捷鍵: (Rubout 就是所謂的 Backspace , C for Ctrl , M for Meta (alt or esc) ) , man 一下 bash 就有了,不過列出幾個常用的分享一下。

M-d 往後刪除一個字 ( word )
C-w 往前刪除一個字,或是 M-Rubout 也行。

M-f 往前一個字
M-b 往後一個字

C-u 刪除前面所有字元
C-k 刪除後方所有字元

C-l 清除螢幕

C-r 往前搜尋指令 ( 非常好用 )

C-xC-e 可以使用 vim 寫入 script 讓他一次執行。

2007年8月12日 星期日

Blogger - feed url for specific label

可針對 Blogger 的 Label 送 Feed ,網址是:

http://你的名稱.blogspot.com/feeds/posts/default/-/標籤名稱

譬如:

http://c9s.blogspot.com/feeds/posts/default/-/Linux

建議可由 feedburner 轉,還可得知訂閱人數。此外 Blogger 現在也有提供 Feed 轉向的功能,可以在內部直接轉到 feedburner ,不需要使用者自己轉。 :)

[1] Blogger Help: http://tinyurl.com/3aceuy
[2] Blogger Feed redirect

The Link Today

男人是略施小惠?或是全心投入?

我不是公主,我是老娘! - 原來還有老娘病.. 話說那個誰好像也有? :P

最近

好不容易緩和下來了。最近在進行的計畫是:

1.輸入法革命 ( 拋棄新注音,改用大易 ):

這無疑是非常痛苦的過程,但是,為了要提高打字效率以及準確度,不得不挑選令一種輸入法,不選擇當今最快的無蝦米的原因是因為我想學習一個比較正統、有原則的一點的輸入法,倉頡的碼太多,大多都是 3,4 碼多,大易則在 2,3 碼比較多,速度較快些,不過有些字還是得選就是了。 基本上倉頡與大易的拆字元素都很像,只是大易的字根比較多,連數字鍵上都是... 如你所見每個按鍵上的右下角就是大易的字根,左下角是倉頡的字根。

雖然我這今天才正式開始練習,但學起大易來似乎比倉頡快多了,只是倉頡與大易的字根完全不一樣,還要去聯想一下字根與部首的關係...

此外發現 SCIM 底下的大易輸入法是 dayi3 ,也就是只有三碼,打起來....老實說真的很累,因為選字的量增加了,速度因此變慢。因此我把 SCIM 移除,裝了 GCIN,果真好多,打起大易來比較順。

然後還順便寫了個大易輸入法字根查詢,但是我想可能慢慢上手之後就用不到了吧,因為大易的拆字挺好拆的,因為大易是以 "筆劃","筆型" 做為拆字的根據。

2.GNU Emacs + GNU Texinfo:

用 GNU Emacs 的原因主要是因為 Emacs 提供了一些 GNU Texinfo 好用的功能,像是更新選單項目之累的。另外,本來就想嘗試看看 RMS 開發的這套編輯器。

Ubuntu 上的似乎還是在 21 版,所以要用 cvs 去抓來裝,另外也要開啟 xft 支援,裝完之後還得設定 color theme 才會好看。

不過 emacs 似乎沒有預設顯示行號的功能,還得要另外塞 lisp 的 script 進去,有 setnu , linum 等等,只不過好像都沒有很完善的方案,譬如說 linum 似乎沒辦法在 .emacs 裡頭設定直接開啟行號,他必須等檔案載入之後才能夠啟動行號的功能...

但基本上設定完的 emacs 還挺不錯看的,有些功能也不錯,如果用不上手還可以設定 viper ,把 emacs 當作 vi 使用。 :P

3.Finish reading "Modern Compiler Design":

然後就是要繼續完成 Compiler 的大業了,這本書還在以龜速進行中,但為了還要讀 Advanced Compiler Design ( MIT Press ) 所以我這本一定得讀完才行,讀完就順便寫個心得好了。

4.Rachmaninoff:

最近練的就是拉先生的 Piano Concerto No2 跟一首 Prelude。

2007年8月11日 星期六

Ubuntu - Emacs Colortheme





原來我漏看了東西,以為只要把 colortheme.el 等檔案放到 ~/.emacs.d/ 裡頭就可以了,沒想到 Debian/Ubuntu 底下是沒辦法這樣用,要自己新增 loadpath,EmacsWiki 如是說:
The directory ~/.emacs.d/ is a standard location for your own configuration files, your own developments, or external third-party modes, but is not shipped by the operating system distributor--Debian for example--in contrast with what configurations are allowed to a user’s DotEmacs.
設定 loadpath 的方法為,請編輯 ~/.emacs ,並新增下列設定:

(add-to-list 'load-path (expand-file-name "~/.emacs.d/"))

這樣在 Debian/Ubuntu 上也可以使用 ~/.emacs.d/ 為 loadpath 了。接下來設定 colortheme ,到 http://download.gna.org/color-theme/ 下載,接著把 color-theme.elthemes 資料夾搬到 ~/.emacs.d/:

$ wget http://download.gna.org/color-theme/color-theme-6.6.0.tar.gz
$ tar xvf color-theme-6.6.0.tar.gz
$ cd color-theme-6.6.0
$ mv color-theme.el themes ~/.emacs.d/


接著 ~/.emacs 也請加上:

(require 'color-theme)
(color-theme-initialize)

接著 M-x color-theme-select 就可以選了,有喜歡的就在 ~/.emacs 內新增,譬如:

(color-theme-midnight)

重開完工。 Orz

[1] http://www.emacswiki.org/cgi-bin/wiki?ColorTheme
[2] http://www.emacswiki.org/cgi-bin/wiki/DotEmacsDotD#.emacs.d

2007年8月10日 星期五

Vim + Slippery Snippet - Installer

之前有寫過 Vim + Slippery Snippet Plugin 的安裝,如果懶得 Step-by-Step 的使用者可以使用 script 安裝 ( for Ubuntu/Debian Users ) :

$ wget http://c9s.lya.googlepages.com/install-vim-snippet
$ sudo bash install-vim-snippet


這樣就裝完了。 :)

Visual Basic 最高! / AudreyT

Visual Basic 最高! (audio) (video)
不過 video的部份,Internet Archive 收錄不是很完整
external: YAPC ( internet archive )

2007年8月9日 星期四

跨平台的 Vimrc

如此一來,這樣不管在 windows , linux 都能共用同一套 vimrc 了,使用 has 來判斷 vim 提供的功能。如果還有其他系統要判斷的話,可查看 `:h feature-list` 這張清單來使用。可參考我的用法:
if has("win32")
" Win32 Platform Options ( 給 windows 用 )

" set runtime path for textmate-like plugin
set runtimepath+=$VIM\vimfiles\textmate\after
set runtimepath+=$VIM\vimfiles\textmate\

" set ctags path
let Tlist_Ctags_Cmd = $VIMRUNTIME . '/ctags/ctags.exe'

elseif has("dos32")
" Dos32

elseif has("beos")
" BeOS ...
" do something

else
" Other Platform

" set runtime path for textmate-like plugin
set runtimepath+=~/.vim/plugin/textmateOnly
set runtimepath+=~/.vim/plugin/textmateOnly/after
" set path for C++ header
set path+=/usr/include/c++/4.1.2/
endif

Vim - My key mapping for tabs

augroup Tabs
"開新分頁
nmap ,tn :tabnew<cr>
"開新分頁並編輯檔案
nmap ,te :tabedit
"開新分頁瀏覽目前目錄
nmap ,tx :tabedit .<cr>
"跳到第一個分頁
nmap ,tf :tabfirst<cr>
"跳到最後一個分頁
nmap ,tl :tablast<cr>
"以分頁開啟說明
nmap ,th :tab help<cr>
augroup END

FlickrViewer

FlickrViewer ,用 Php 去 Parse Flickr 上的相簿,輸出 XML 給 SimpleViewer 顯示。

可點這裡看效果

2007年8月8日 星期三

Subversion + SSH with Non-standard port

Subversion 若開啟 tunnel mode

$ svnserv -t

則使用

$ svn co svn+ssh://hostname/path/to/repo

但若是 ssh 使用非預設的 Port 22,譬如說 1234 ,則得編輯 ~/.subversion/config,找到 [tunnels] 的部份,新增下面這行

foo = /usr/bin/ssh -p 1234

使用 svn 時則將 scheme 的 ssh 改為 foo 即可:

$ svn co svn+foo://hostname/path/to/repo

另外發現開 svnserve 時,似乎指定 root 無效,也就是 -r /home/svnrepo 無效,所以得用:

$ svn co svn+foo://hostname/home/svnrepo/repo1

Elgar , Sonata for Violin & Piano , Opus 82


整個很感人的一首。 (也是交響情人夢(動畫) 中野田妹在千秋家中與千秋合奏的那首。)

殭屍夢

夢到殭屍,好像要參加殭屍世界的某比賽,結果殭屍突然走進來,發現我的指甲是假的,於是睜大雙眼對我說『你是假的!』,伸出雙手請我把殭屍帽摘下來給他....然後他就走了 XDDD
你知道被騙又被羞辱的感覺是什麼嗎?

我應該要笑著說我沒事嗎?

事後給糖這樣嗎?噢,來~小朋友乖,沒事了
這樣真的就沒事了嗎?

如此一般,我該如何相信你(們) ?

噢,我才發現我實在是太愚蠢了,蠢到毫不懷疑別人所說的話。

2007年8月6日 星期一

Vim 學習地圖

很多 Vim 新手很容易在 Vim 的 Documentation 中暈倒,我想英文大概是許多人無法跨越那條瓶頸的原因,於是我想應該畫個地圖,這樣可以方便各種需求的使用者閱讀。

在這裡分享一下學習技巧,你可以準備一張卡片,然後畫個表格,照你的紀錄方式把看過的、覺得有用的技巧紀錄在上面,並記得分清楚各種模式,使用 Vim 時,如果忘記,就能夠很方便的查看、使用,整理完,這就是你的 Reference Card 了,你可以再整理的更漂亮,甚至拿去護貝。

首先,關於 Vim 的基礎可以在李果正長輩整理的中文教學 大家來學 Vim 開始。官方的英文文件可參閱線上的 Vim Documentation,或是在 Vim 內輸入 :help 進入教學文件,或者開分頁進文件 :tab help 。

一般使用者: 只是用 vim 來修改一些普通的文字檔而已,所以針對最基本的需求,可只看 usr_02.txt 就足夠,此章節提供最基礎的技巧 ( 開檔、寫檔、插入文字、復原、重作 ),但不會提供快速、方便的方法。

繼續往下看的朋友則需要瞭解如何設定基本的 vimrc 檔,參閱: usr_05.txt

另外可參閱一些 vimrc 的說明,如: vimrc 常用設定(問答) , vim 的環境設定 ( vimrc )

進階的 vimrc 設定,如:
有耐心、有閒,想要徹底瞭解 Vim 的使用者: 可以從 usr_01.txt 讀到 usr_45.txt ,還可以把 Basic Editing 、 Advanced Editing 等等全部讀完 ...............

用 Vim 寫程式的使用者: 除了基礎章節外,可參閱 tips.txt 內的 C-editing 章節,此章節提供許多寫 C 程式的秘訣,譬如 找尋變數定義、縮排、編譯、自動完成等等技巧。相關之章節 usr_29.txt , usr_30.txt

給不知道從哪看起的朋友,或是只想挑重點看的朋友

基本技巧:
  1. 若是想要在移動、換頁、修改速度上提昇,可參見 usr_03.txt , usr_04.txt , motion.txt
  2. Vim 提供各種在輸入文字方便的功能,像是內建快捷、自動補齊、複製等,可參見 usr_24.txt , insert.txt , change.txt
  3. 選取區塊、字串等技巧,可參見 visual.txt
  4. 自訂快速鍵: map.txt
  5. 搜尋功能: usr_27.txt
進階技巧: ( 依照實用性排列 )
  1. 分頁功能參見: tabpage.txt
  2. 開啟多個視窗: usr_08.txt , windows.txt
  3. 標籤( Tag )功能: tagsrch.txt
  4. 折疊功能,參見: usr_28.txt , fold.txt
  5. 強大的樣式比對: pattern.txt
  6. 想瞭解更多的設定,參見: options.txt
更細節、進階的東西在此就不說明了。

2007年8月5日 星期日

Vim - Modeline

Vim - XML Plugin

寫 XSLT , XML , HTML 等 Markup Language 超好用的 Plugin ( Link )

安裝:

直接將此 xml.vim 放到 ~/.vim/ftplugin/xml.vim 即可。

若是要將 xsl.vim, html.vim, xhtml.vim 等檔案開啟時都自動啟動此 Plugin ,可自行建立連結,譬如:

$ ln -s xml.vim html.vim

XML Plugin 的使用方式:

開啟 Vim 之後會自動幫你裝好 Help Doc ,接著照平常那樣輸入 Tag ,最後補上 ">" 時,會自動幫你補上關閉的 Tag ,此時,如果再按一次 ">" 就會幫你換行,譬如說:

輸入 <Para> 則會自動補齊,變成:

<Para> </Para>

此時若是又輸入 ">" ,譬如:

<Para> > </Para>

於是自動換行變成:

<Para>

</Para>


或者先輸入文字,譬如說輸入 test;; ,Vim 會自動幫你轉成 "<test> </test>"。

除此之外,在 tag 間跳躍也可以像跳括弧那樣按 % ( Normal Mode)

更改 Tag 的名稱,將游標移動到要修改的 Tag 上,接著在 Normal Mode 輸入 \c 即可。

其他詳細資料,可查詢說明文件,於 Command Mode 輸入 :h xml-plugin

// 真的是太方便了!

2007年8月2日 星期四

Vimdiff



$ vimdiff file1 file2

do 可以把對面比對的部份的抓過來 , o for "obtain" 。
dp 則是把目前視窗比對到的部份的放到對面去。 p for "put"。

[c]c 則可以在 change 間跳躍。

Vim Tips - 以 Tab 開啟游標底下的檔案

之前有提到說 設定 gf 以 Tabpage 開啟,後來發現原來有預設的功能了,就是

<Ctrl-W> gf

See: tagpage.txt