Archive for the ‘Linux’ Category

TeXLive 2007

Wednesday, September 19th, 2007

TeXLive 2007 抓下來已經是上個月的事了,可是因為一些雜事所以一直沒動手。今天剛好趁著颱風假把 iso 燒出來玩。安裝 TeXLive 事實上是很簡單的,但要注意的是,TeXLive 有分 DVD 和 VCD,如果不想安裝在硬碟,而是直接取用光碟內的檔案的話,只能下載 DVD iso。我目前是選擇不安裝到硬碟,好為我可憐的小容量硬碟多搾出一點空間。
(more…)

加入水銀黨

Saturday, September 8th, 2007

前陣子一直覺得 cvs 和 svn 並不是真的那麼好用,因此在看了許多人的介紹後,我也決定加入水銀黨了 (誤… (more…)

Using Vim as a syntax-highlight pager

Thursday, September 6th, 2007

最近在 Debug 程式時總覺得之前弄出來的 output highlighter 不太夠用,雖然可以很方便標出一些關鍵字,但規則一多就得串一大堆,效率不彰。不曉得腦筋怎麼轉的,突然想到 Vim 應該可以好好利用一下… (more…)

console output highlighter

Wednesday, July 4th, 2007

我常常要在一堆 output 中找特定關鍵字,通常是透過 sed 來加上顏色,不過剛剛覺得一大串指令很煩,寫了個簡單的 script 包起來了

下載 highlighter

使用方式很簡單

some_program | hl <keyword> [<ansi color code>]

或是

hl <keyword> [<ansi color code>] < some_file

這邊的 ansi color code 只要填數字的部份,不用加上前面的 Esc[ 與最後的 m

多個關鍵字比較麻煩,目前只能多跑幾次

some_program | hl <keyword1> | hl <keyword2> [ | hl …]

upgrade to slackware-current

Thursday, May 24th, 2007

最近幾個晚上都在嘗試手動將系統更新到 current,雖然沒看文件就硬上實在很勇敢,不過 slackware 的優點就是爛了要救回來也不難,它的套件管理系統有一個很棒的特性:upgrade 其實只是 replace,而且因為不做相依性檢查,所以只要一個指令就可以隨心所欲 upgrade 或 downgrade。就是因為這個特性,即使我已經同時使用 debian 將近四年,我還是離不開 slackware (再講下去會不會變成偽推廣文XD)。總之這幾天瞎搞一陣後,大部份問題都解決了。更新過程中最頭痛的三個項目:glibc、Xorg、與 kernel,在此記錄一下目前的情況…

(more…)

cgdb - curses gdb

Friday, April 13th, 2007

gdb 很強大,但是 list source 的部份感覺上並不是那麼好用;Insight 或 ddd 之類的程式雖然有提供 source list window,可惜我得了不用 CLI 就會死的病 (大誤),所以一邊拿自己的生命開玩笑,一邊還是繼續找尋 console 下的解決方案。之前有提到要找找 vim + gdb 的整合方式,找到幾個都很麻煩,我希望盡量不要動到系統本來的程式 (畢竟有些機器不是我的…)。後來從 jserv 的投影片看到 cgdb 這個好東西,馬上下載試試。

編譯後的程式非常小,執行後會將畫面切一半:上面是 source window,下面是 gdb concole。雖然不是直接跟 vim 整合,不過操作上已經是 vi-like 的 key binding,所以使用上還算是順利,只要先搞清楚 CGDB mode、GDB mode、TTY mode、與 file dialog mode 的切換方式就可以開始玩了。另外,在操作 source window 時也可以設定 shortcut 模式,直接下指令給 gdb,省卻在不同模式間切換的時間,相當貼心的設計。

cgdb 的設定檔放在 ~/.cgdb/cgdbrc,可以將設定放在這邊,我目前的設定如下:

set arrowstyle=highlight
set autosourcereload
set shortcut
set tabstop=4
set winsplit=top_big
hi Statement cterm=bold ctermfg=6
hi PreProc cterm=bold ctermfg=4
hi IncSearch ctermfg=2
hi LineHighlight cterm=bold ctermfg=3 ctermbg=4

不過設完 highlight 才發現一件事,cgdb 的 lexer 不是很完整,所以對於 “#” 後面有空格的 preprocessor directives 判斷會怪怪的。可以修改一下 clexer.l (放在 cgdb/tokenizer/src)

- #{L}+ { return(TOKENIZER_DIRECTIVE); }
+ #[ \t]*{L}+ { return(TOKENIZER_DIRECTIVE); }

這樣看起來會正常一點。

目前這個程式感覺上還很陽春,不曉得能不能整合 watch, register, call stack 等等資訊,應該會更方便一些。