星期三, 2月 13, 2013

ibus override xmodmap, use xkb options instead

之前寫過一篇關於把 caps lock 重新 map 到 control 的方法,但昨天更新了 ibus 以後突然發現我的 xmodmap 只要切換輸入法引擎的時候就會被覆寫過去,google 了一下,大家似乎是推薦用 xkb 的設定選項來作調整:

Debian 來講的話,就是修改 /etc/default/keyboard
把 XKBOPTIONS 這行加入 ctrl:nocaps (有其他選項的話以逗號分隔)
XKBOPTIONS="ctrl:nocaps"
重新開 X 以後就可以囉!似乎是比 xmodmap 乾淨一些,但缺點就是這樣改到的是整個系統的設定,如果使用者要改就沒辦法了。 若沒有 root 的權限可以改 /etc/default/keyboard, 也可以在 ~/.xsession 加上:
setxkbmap -option "ctrl:nocaps" &
其他的選項可以參考 man xkeyboard-config, /etc/default/keyboard 相關的資訊: man keyboard

星期六, 2月 09, 2013

pathogen, manage your vim plugins in a clean way

vim 用久了, 裝很多 plugin 很正常, 但有時候只是想試看看某些 plugin 用完要移除的時候卻發現很麻煩, 要自己把檔案刪掉。好加在 vim 發展到現在也有許多人做了套件的工具/套件: pathogenVimana 算是我比較常聽到的管理套件。但 Vimana 需要透過 perl,如果在 windows 下要使用還頗不方便的(雖然我很久沒用windows寫程式了..)。 Pathogen 的運作方式是透過增加 runtime path 的方式,把 plugin 獨自存放在各自,vim 開啟的時候會搜尋所有的 runtime path,把這些設定都讀進來,所以要刪除時只要把該套件的資料夾刪除就可以了。 安裝的方式也很簡單,pathogen 本身就是一個 vim plugin:
$mkdir -p ~/.vim/autoload ~/.vim/bundle; \
$curl -Sso ~/.vim/autoload/pathogen.vim \
    https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim
基本上就是把 pathogen.vim 下載下來放到 ~/.vim/autoload/,再把套件預設存放的資料夾 ~/.vim/bundle 建立起來。 最後再將
execute pathogen#infect()
加入 vimrc 就可以了,這邊就完成 pathogen 的安裝。 裝好 pathogen 以後,開 vim 時他就會去 ~/.vim/bundle 把下面的資料夾路徑都加入 runtime path,所以安裝套件時只需要在底下開一個資料夾東西丟進去就可以正常使用了,比如說安裝 ctrlp.vim 可以直接 git clone 到 ~/.vim/bundle 下即可:
$ cd ~/.vim/bundle && git clone git://github.com/kien/ctrlp.vim.git
個人還蠻喜歡這個方式的,很乾淨。