2010年2月18日 星期四

用 rlwrap 幫任何命令列工具加上 code completion、command history

用慣 shell 後, 用命令列工具時總想按個 tab 就補完指令, 按上下就能搜尋過去打過的指令。遺憾的是, 不是每個命令列工具都支援這個功能。沒關係, 你的心聲 rlwrap  (readline wrapper) 聽到了!!

在 Ubuntu 下安裝 rlwrap 的方法是.....沒錯, 和你猜的一樣:
sudo aptitude install rlwrap
啟動方式是:
rlwrap ARGUMENT COMMAND
以 sqlite3 為例, 啟動方式是:
rlwrap -a -r sqlite3
-a 表示不管原本的程式是否有用 readline, 都改用 rlwrap。 -r 表示記下所有打過和螢幕上出現的字彙。如此一來執行 「select * from my_table;」之後, 可以直接按 tab 補完 column name 或 table name 。

另外可以編輯 /etc/rlwrap/sqlite3 存入關鍵字 (如 select、where、limit), 這樣每次執行指令時都能自動補完這些字。檔案格式是一行一個字。rlwrap 會到 /etc/rlwrap/COMMAND 找預設關鍵字, 也可另外用 -f FILE 指定關鍵字。

沒有留言:

張貼留言

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...