vim 走迷宮

8 九月, 2005 (22:29) | 電腦與網路

自從我知道 vim 可以走迷宮還有玩俄羅斯方塊以後,再也沒有什麼可以嚇倒我了 !!

最近 Blake 學長在他的 blog 上面連載一些 vim 的使用小技巧,濟世渡人,普渡眾生;我是沒有那麼學有專精啦,不過這邊可以介紹一下 vim 到底可以做到什麼誇張的地步。

我第一次被 vim 嚇到是看到它原裝內附的某一支 macro,放在 $VIMRUNTIME/macros/maze 下面;要介紹這支 macro 之前,要先講到 John Tromp 寫來投稿 IOCCC 1988 年那屆的作品 maze (很奇怪,竟然沒上,我覺得其他得獎作品好像也不怎麼樣),該作品如下:

char*M,A,Z,E=40,J[40],T[40];main(C){for(*J=A=scanf(M="%d",&C);
--            E;             J[              E]             =T
[E   ]=  E)   printf("._");  for(;(A-=Z=!Z)  ||  (printf("\n|"
)    ,   A    =              39              ,C             --
)    ;   Z    ||    printf   (M   ))M[Z]=Z[A-(E   =A[J-Z])&&!C
&    A   ==             T[                                  A]
|6<<27<rand()||!C&!Z?J[T[E]=T[A]]=E,J[T[A]=A-Z]=A,"_.":" |"];}

如你所見,這程式長得像迷宮,它的功能也是產生迷宮。到這裡為止,我覺得已經很扯了,沒想到有個神人 Greg McFarlane,在 usenet 上面 post 了這樣一篇文章,裡面就是一支 vim 的 macro,該 macro 的用途就是可以自動解上面那個 maze 程式產生出來的迷宮… XD

至於俄羅斯方塊,可以參考這裡,這個就沒什麼背景資料要補充的,玩就對了 :p

Technorati Tags:

Comments

Pingback from 紅塵一隅間拾得 » 不是打vi的廣告, vim 的選擇模式 (visual mode)
Date: 2005/9/10, 11:43 上午

[...] 你如果覺得 vim 怎麼會連這個都做,會不會太神奇了一點?那也許你可以參考一下廖董的文章&lt; vim 走迷宮 &gt;,誠如廖董說的「自從我知道 vim 可以走迷宮還有玩俄羅斯方塊以後,再也沒有什麼可以嚇倒我了 !!」   [...]

Pingback from 紅塵一隅間拾得 » 不是打vi的廣告, vim 的環境設定
Date: 2005/9/21, 2:04 上午

[...] 由於在 vim 設定檔 _vimrc(在 UN*IX 環境它可能是 .vimrc) 裡面可以做的事情太多,舉凡像是縮寫設定(讓你可以少打一點字)、設定熱鍵、根據不同檔案類型編寫不同格式的設定、寫程式(看過廖董介紹的 vim 走迷宮了嗎?)諸如此類你想得到的對於一個檔案的設定, vim 可能都有。有鑑於此,所以程式和熱鍵設定的部分移到以後再說,這次我們就只討論一些對於編輯上可能會用到的設定。 設定檔 _vimrc/.vimrc 的位置: [...]

Trackback from detrox
Date: 2005/11/19, 6:50 下午

不是打vi的廣告, vim 的環境設定 ( vimrc )

http://greenisland.csie.nctu.edu.tw/wp/2005/09/21/341/

Comment from denniswu
Date: 2006/11/4, 6:12 下午

報告長輩
那隻生迷宮程式maze
不只是看起來像迷宮
而且排版出來空白的部份就是英文字maze
路人小弟補充一下下…..

Comment from ijliao
Date: 2006/11/4, 6:32 下午

這還蠻明顯的,我以為大家都看得出來 :p
-
no offense :)

Pingback from vi - danielyuen.hk Blog
Date: 2007/2/10, 12:48 上午

[...] vim 走迷宮 [...]

Write a comment