2009年1月31日 星期六

AutoPager

最近幫 Firefox 裝了 AutoPager 這套 Extension. 頗好用。省去了按 Next Page 的時間,還替你預先自動 Download 下一個頁面,真是超適合懶人,以及筆電使用者。

2009年1月27日 星期二

壹貳柒

有一段時間我自己都不知道是怎麼樣過去的。像是空白的一樣。今年回外婆家,我已經快兩三年沒見過外婆了,上次見她,是三年前,爺爺中風過世,那時父親心臟病住院,一連串發生許多事情,都快沒有力氣了。如今見外婆,心情也複雜許多,一個人要孤單的待在一棟公寓裡頭住如此久的時間是不容易的,況且爺爺又過世,有好長一段時間也都是以淚洗面,以前眷村認識的老伴也都一一辭別,一個人獨處的孤單可想而知。

然後過了這麼久,我畢業了,接著當完了兵。年初來臨。

看著外婆開心、我心裡也不自覺的溫暖了起來。我特別了解這份感覺,忍受孤寂、忍受等待、等待如此漫長的歲月,只期待與所愛的人相遇,而相見卻又如此短暫。眨個眼,又要再次分離回到日出而作日落而息的日子。我不禁為外婆覺得心疼。

2009年1月26日 星期一

vim - fuzzyfinder

FuzzyFinder. vim 的愛好者一定得 give it a try. 用中文搜尋了一下結果居然發現沒有半篇中文提到這個 plugin 所以打算來介紹一下。

這個 plugin 的作者是個日本人。發現這個 plugin 是因為我在 vim.org 上頭看見了 rails.vim 並且很好奇這套 plugin 如何運作,於是搜尋了一下他的 video demo. 抓他的 script 下來看才知道 fuzzyfinder 這東西。

Anyway 這套好用的 plugin 可以讓你在兩三個按鍵內搜尋,並開啟檔案。用簡單的 Leader 可以設定啟動鍵

nnoremap <Leader>ff :FuzzyFinderFile! <CR>

其他還有 Dir , Tag mode 等等。

vim - jifty syntax

I wrote this: jifty syntax

updated.
* Syntax highlight support for html,sql,js embedded heredoc. something like $content=<<HTML123 will make vim highlight the string as HTML
* Dispatcher folding
* Template::Declare tags folding

I encountered some problems of syntax region. the built-in syntax file of perl uses "<<...something" to match heredoc identifiers, which makes HTML highlight the "<" of HereDoc as an error. so I tried to use lookforward regular expression to exclude the "<<" part.

It seems that vim will compile and organize all patterns, so a pattern of heredoc which uses lookforward regular expression won't match heredoc , because the non-lookforward pattern will match first.

Changing the built-in perl syntax is not a good idea , and I tried to syn clear the perlHereDoc region, but it still can't work out. the small hack I did here is, let the '<<' match the HereDoc first , then make it contains a HTML block, and create another syntax region to contain the @htmlTop. set end pattern as "^\(HTML\)\@= to let the HereDoc pattern can match the end.

The sequence of syntax loading is very interesting. Vim will load the $HOME/.vim runtime path at first , after that, Vim loads $VIM/vimfiles , $VIMRUNTIME , then load the $HOME/.vim/after finally.
It was wrong that I put the jifty.vim to ~/.vim/after/syntax and let ~/.vim/syntax/perl.vim to load it, so Vim loads jifty.vim before the built-in perl.vim which override my patterns. Vim documentation also mentioned that the lastest pattern will match first, thus my patterns always can't work out.

Actually, jifty.vim should be located at .vim/after/syntax/perl/ not .vim/after/syntax/. we can put all the enhanced syntax files into a directory, vim will load them automatically.

This told me, I should read all the syntax.txt doc before I play with it...

2009年1月24日 星期六

Vim Tips - Window size & position

因為最近大部分都在 MacBook 上工作,Macports 以及上面的許多東西實在太另我著迷 ( 雖然除了 ports 以外有許多軟體都要購買才能使用 ... )

需求: 由於用 trackpad 移動視窗不是很方便,有時要同時參考文件或其他 code 也得重新調整視窗大小。

解法: 利用 vim script 提供的一些 api 做了一個這個小 hack,將 keymap 設定 C-x{a,s,d} ,並有下列對應 :

C-x a 將視窗寬度縮小一半,並將視窗自動調整到左半邊。
C-x s 將視窗調整為螢幕大小 ( Full )
C-x f 將視窗寬度縮小一半,並將視窗自動調整到右半邊。

建立一個 function:
function WHLeft()
winpos 5 5
winsize 90 49
endfunction
nmap <C-x>a :call WHLeft()<CR>
其他對應如法炮製即可,當然也可以製作上半、下半等等功能,其實寫一個 resize 的 function 去吃 w,h,x,y 會更簡潔,不過為求方便就沒花時間去研究。另外,winsize 的部份要注意的是設定的是 column size 以及 lines 而不是 pixel,winpos 的部份則是 pixel。

2009年1月4日 星期日

Lftp , setup network bandwith limit

edit your ~/.lftprc
set net:limit-rate (upload):(download)

for example:
set net:limit-rate 204800:540000

and you can also setup the "net:limit-max" , "net:limit-total-max" for the network accumulating limit.