2010年1月24日 星期日

Vim - Making your script auto-installable

Once you write a plugin , you will need it to be auto-installable. Vimana is a script manager , which parses script files, and looks for a "script type:" tag to install the script.

For example , if you have script , which is a ftplugin , then you should write:


in your script file. cases is ignored.

then the plugin could be installed via Vimana script manager.


Or if you have multiple file to install , you can put your script files in this kind of directory structure:

plugin/script.vim
ftplugin/script.vim
doc/script.txt

then tar it and upload to vim.org site , the plugin could be installed via Vimana too.

Vimana - new feature.

Vimana 的移除功能總算是找時間弄好了,兩個新的 Feature:

1. Customizable Runtime Path:

$ vimana install [plugin] --runtime-path [path]

可以指定要安裝的 Runtime Path , 可在 .vimrc 內加上 set runtimepath+=[your/path] 。

2. To uninstall Plugin:

$ vimana remove [plugin]

即可移除安裝

或者強迫移除安裝:

$ vimana remove [plugin] --force

基本上 Installation 的 Record 都是以 JSON 格式置放在 ~/.vim/record 內,所以若有其他的 implementation 也可以很輕易的讀取,VimL 則可以直接 eval 該 record 來取得資料。

2010年1月14日 星期四

Vim - [[ and ]]

一般來說 [[ , ]] 預設可在 c , java 裡頭跳躍函式,不過沒有 support Perl code , 所以為了方便在 Perl 裡頭的函式跳躍,我寫了這樣的 search mapping:


如此就可以在 sub 函式間跳躍,如果使用 Moose 的 method ,可自己將 'method' 加上。

2010年1月10日 星期日

vimomni.vim


雖然 vim 本身有 C-x C-v 來做 command 的 completion ,不過在寫的時候還是會覺得相當不夠用。於是 vimomni.vim 這個 completion plugin 就是為了寫 VimL (Vim script) 而昨天在車上突然寫好的。

基本上 vimomni.vim 本身支援了 runtime 所有 variable name , command name , function name 的 completion,當然也會自動 parse 目前檔案所定義的 Function , Variable 以及 Command 等等,同時也針對不同的 context 來補齊。

另外一個好用的是 option name 的 completion,輸入 "set " 後, C-x C-o 叫用 OmniCompletion 即可自動補齊 option 。

將 ftplugin/vim/omni.vim 放置到自己的 ~/.vim/ftplugin/vim/ 底下,開啟 .vim 檔時便會生效。若要手動載入,可輸入 :setf vim 。

git-sync

當你的 Git Repository 越來越多的時候,git-sync 是一個幫你同步的好工具,就不需要一個一個慢慢 pull 或是自己寫 script 去 pull 了。太苦。

git-sync 支援三類型的 sync 機制,local , github 以及 remote ,local 是指到你指定的目錄底下幫你同步所有的 git repository ,如果是 svn clone 的 repository ,也會幫你做好 git svn fetch , git svn rebase 的動作。

github 則可幫你同步 github 上所有的 repository , remote 則是你可指定自己的 git repository host 來做同步。

譬如說我的 .gitconfig 這樣設定:

那麼只要下

$ git sync local


$ git sync github

其中 local 以及 github 只是 category 的名稱,可以隨意自訂。

即可同步所有的 repository。

或是如下設定:

See Also:

2010年1月6日 星期三

Vim - eval command.

為了快速的驗證一段 VimL 或是測試、更新 VimL 的 function , option ,我有一個 function 是這樣寫的:


如此當我寫了一個 VimL 的 Function define 的時候,只需要使用 visual line-wise mode 選取起來之後,利用 e vmap 來 eval 這個 region。

就不需重新 re-source .vimrc 或是重新開啟 Vim 。

2010年1月4日 星期一

Nara Leão

說到 Bossa nova ,大家大概都會想到 Lisa Ono。但其實要說 Bossa nova 的 Muse 女神,非 Nara Leão 莫數,在 bossa nova 被錄下來之前通常都是 intimate 的。

Nara Leão 巴西人,她的聲線相當性感,比 Lisa Ono 更纖細敏感。也許是因為人生經驗的因素吧,Leão 的歌聲帶著 nostalgia 的味道,可惜已經在 1989 年過世,享年 47 歲,可是年少早逝的歌手。



[1] Nara Leão - http://en.wikipedia.org/wiki/Nara_Leão

2010年1月3日 星期日

Vim - URL Line Opener

為了要開啟一連串的 URL List 所以寫了這個。


你可以自己定義自己的 browser command 。"V" 選擇區塊然後輸入 :OpenURLLine ,或是直接 :OpenURLLine 。

# 基本上這種東西只有在 Google Chrome 沒辦法用 Extension 沒辦法存 Session 只能一頁一頁把網址丟到文字檔的時候用而已。Orz

2010年1月2日 星期六

豚跳技巧心得

雖有將近 6 年多沒再繼續玩滑板,後來一上板之後卻可以做出豚跳感覺來不賴。

以前練習總是胡亂練習,不懂得思考與調整,所以現在試著對每一次的動作找出缺點以及出錯的原因。

* 預備豚跳時,重心應該是平均放在兩腳,利用兩腳的力量跳躍。以前誤以為是只利用前腳的力量豚跳,後腳只負責把滑板敲起來。事實證明是利用兩腳跳躍可以跳的更高,而且可以確保力量足夠將滑板敲起來,也才有辦法在空中把滑板拉平。

* 身體必須與滑板保持平行。常常會因為豚跳的時候身體會不自覺轉到正面,因此滑板在空中會因為上半身拉動,導致著地的時候和行進方向不為平行,角度太大時,容易造成跌倒。

* 跳起之後的重心不該往前或往後移動。這完全是以前練 180 Backside Ollie 的時候造成的錯誤習慣。

* 後腳在跳起之後必須立刻收高,如此才有辦法把板身拉平。

* 在拖板時,前腳應該要讓腳背往外翻,讓摩擦面積增加。這個動作如果沒有做好或是忘記做的話,會造成板身沒辦法拉平。


Mac - ghc on snow leopard

由於 Macport 上的 ghc 現階段完全無法在 snow leopard 上編譯安裝,這裡有一篇running haskell ghc on snow leopard 寫了解決方案。

先到 http://hackage.haskell.org/platform/ 安裝 Haskell Platform (已編譯好的 binary)
修改 /usr/bin/ghc , /usr/bin/ghci ,加上參數 -optc-m32 -opta-m32 -optl-m32 。

2010年1月1日 星期五

關於滑板的那些歲月

在國中時,好友意外的在某個地方撿到了一塊滑板,以當時估計那塊滑板的價值大概四千至五千,算是當時不錯的板。於是這一塊滑板為一群苦悶的少年帶來了一些歡樂。下課時、掃地時我們都在走廊上瘋狂的練習滑板,甚至豚跳。每練一次豚跳好像都快把三樓的水泥走廊震垮,不過當時的我們什麼都看不見,就是一直這樣在學校胡鬧,氣到老師大怒。



當時的我還是相當叛逆的。後來滑板技巧較熟之後,甚至還直接溜滑板到學校,在自修時間從教室前的一整排走廊滑行而過,或是故意在女生班前面的走廊滑行、或玩弄技巧。 XD

後來存錢存了很久,終於有了自己的第一塊滑板,當時是和班上朋友一起去組的板,每個人都選了自己喜歡的圖樣 (結果後來這群朋友豚跳都還沒練好就沒繼續練下去了)。過了一陣子,一個人在家附近的公園認識了第一群滑板的朋友,這群滑板的朋友從 13 歲到 33 歲都有。

有一段時間常在學校的禮堂前練板,從大樓梯一躍而下,或 kick-flip , heel-flip 或 180 Ollie 等等,引來眾人*側目*。那時候因為還沒有所謂的極限運動場,我們只能找合適的場地練習,有的地方可能會被附近的居民抗議太吵,或說我們破壞地磚。。正因為場地並沒有很豐富可以用來練卡招 (Sliding 之類) 或像是滑溜碗那樣可以玩的技巧,於是我們練最多的都是地板招式。



後來讀大學,玩板的人又更少了,甚至沒有。再加上開始迷戀古典鋼琴,於是滑板就被我荒廢了將近 6,7 年之多。一直到了上上個禮拜,我在某個電視片段中看到了那些過去迷戀的滑板技巧影片,我想,要是再不回去玩,再過幾年也沒有身體可以給我摔了,於是立刻就跑去組了一塊板。 :-P


接著和以前玩板的朋友聯絡上,才知道朋友因為摔太多,摔怕了,後來就再也沒練習,真是覺得有些可惜。不過在我強力說服之下,還是把朋友找去台南的極限運動場練板了。我發現在那玩地板招的人似乎不是這麼多。聽朋友說,後期有了運動場之後,進來玩滑板的人大多都是練跟設施有關的技巧。



這麼多年沒玩板,我一上板之後居然還能順利完成豚跳 (Ollie) 的動作,還真是不可思議!不過嘗試過滑溜碗之後,發現這真是一個會讓人上癮的東西!速度感是會讓人上癮的。

總之,熱血回來了,發文以此紀念。祝我順利。

# 後來還得知,以前的好友阿佑現在已經是選手了。