vim 的設定與一些快捷鍵

參考了幾篇文章以後,調整出 gvim 設定 (_vimrc/.vimrc)的最終版本.我把這份設定列在最後,作為以後參考:

如果要看 c/c++ 的 code, 可以用 ctags 預先為 c/c++ 程式產生 tags 檔案.
用法:

ctags -R

接著在看程式的時候,先用

set tags=your_tag_file

載入 tags 檔案,遇到變數或函數時,就可以按 g ctrl+] 或 ctrl+] 直接跳到該變數或函數的所在位置.
要往返的話,就按下 ctrl+t 返回.
如果要找對應括號的話,可以用 % (shift+5).
ctags 也可以 parse c# 的檔案,換句話說,你也可以用他來看 c# 的原始碼.
以後看 code 就輕鬆多了,之前應該早點聽 Irene 的話來學這個…~_~
再配合 Vim Intellisense, vim 真的是無敵了…
以下是 gvim 設定


" 繼承預設的 gvim win32 設定
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
" 當輸入文字時隱藏 mouse
set mousehide
" 自動載入 ctags 產生的 tags 檔案.
set tags=./tags,tags
" 不自動存檔
set nobackup
" 自動縮排
set autoindent
set cindent
" 顯示行列位置
set ruler
" 自動找對應括號
set showmatch
" tab 設置
set shiftwidth=4
set tabstop=4
" 語法高亮度
syntax on
" 把 tab 展開成空白.
" set et
" 相反地設定
" set noet
" 下面都是從這裡抄來的: http://edt1023.sayya.org/vim/node10.html
" 使用 :update 代替 :w,以便在有修改時才會存檔,注意,這和 vi 不相容。
map <F2> :up<CR>
map <F3> :up<CR>:q<CR> " 存檔後離開
map <F4> :q!<CR> " 不存檔離開
map <F5> :bp<CR> " 前一個 buffer 檔案
map <F6> :bn<CR> " 下一個 buffer 檔案
" 單鍵 <F7> 控制 syntax on/off。倒斜線是 Vim script 的折行標誌
" 按一次 <F7> 是 on 的話,再按一次則是 off,再按一次又是 on。
" 原因是有時候顏色太多會妨礙閱讀。
map <F7> :if exists("syntax_on") <BAR>
\ syntax off <BAR><CR>
\ else <BAR>
\ syntax enable <BAR>
\ endif <CR>
" 按 F8 會在 searching highlight 及非 highlight 間切換
map <F8> :set hls!<BAR>set hls?<CR>
" Toggle on/off paste mode
map <F9> :set paste!<BAr>set paste?<CR>
set pastetoggle=<F9>
map <F10> <ESC>:read !date<CR> " 插入日期
map <F11> :%!xxd<CR> " 呼叫 xxd 做 16 進位顯示
map <F12> :%!xxd -r<CR> " 回復正常顯示
" 原本就有的設定.
set diffexpr=MyDiff()
function MyDiff()
let opt = ‘-a –binary ‘
if &diffopt =~ ‘icase’ | let opt = opt . ‘-i ‘ | endif
if &diffopt =~ ‘iwhite’ | let opt = opt . ‘-b ‘ | endif
let arg1 = v:fname_in
if arg1 =~ ‘ ‘ | let arg1 = ‘"’ . arg1 . ‘"’ | endif
let arg2 = v:fname_new
if arg2 =~ ‘ ‘ | let arg2 = ‘"’ . arg2 . ‘"’ | endif
let arg3 = v:fname_out
if arg3 =~ ‘ ‘ | let arg3 = ‘"’ . arg3 . ‘"’ | endif
if &sh =~ ‘\<cmd’
silent execute ‘!""C:\Program Files\Vim\vim64\diff" ‘ . opt . arg1 . ‘ ‘ . arg2 . ‘ > ‘ . arg3 . ‘"’
else
silent execute ‘!C:\Program" Files\Vim\vim64\diff" ‘ . opt . arg1 . ‘ ‘ . arg2 . ‘ > ‘ . arg3
endif
endfunction

Ubuntu on my laptop

星期天把 Ubuntu 裝到我的 Notebook 上.
前兩天稍稍調整一下桌面,讓他變得像 MacOS.
這就是所謂的虛榮嗎? :-p
ubuntu desktop Screenshot

Regular expression in common use

剛好要用到,所以特別在網路上找,主要都是給 RegularExpressionValidator 作 validate 用的…

  • 檢查日期
    • dd/mm/yyyy
      ((([0][1-9]|[12][\d])|[3][01])[-/]([0][13578]|[1][02])[-/][1-9]\d\d\d)|((([0][1-9]|[12][\d])|[3][0])[-/]([0][13456789]|[1][012])[-/][1-9]\d\d\d)|(([0][1-9]|[12][\d])[-/][0][2][-/][1-9]\d([02468][048]|[13579][26]))|(([0][1-9]|[12][0-8])[-/][0][2][-/][1-9]\d\d\d)
    • yyyy/mm/dd
      ([1-9]\d\d\d[-/]([0][13578]|[1][02])[-/](([0][1-9]|[12][\d])|[3][01]))|([1-9]\d\d\d)[-/]([0][13456789]|[1][012])[-/](([0][1-9]|[12][\d])|[3][0])|([1-9]\d([02468][048]|[13579][26])[-/][0][2][-/]([0][1-9]|[12][\d]))|([1-9]\d\d\d[-/][0][2][-/]([0][1-9]|[12][0-8]))
  • 限制位數的數字
    (^-?\d{1,10}\.$)|(^-?\d{1,10}$)|(^-?\d{0,10}\.\d{1,9}$)
  • 一般數字
    ^(-)?\d+(\.\d\d)?$
  • 檢查 e-mail
    ^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$
  • 查 url
    ^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\’\/\\\+&%\$#_]*)?$

參考資料:

蘿蔔茼蒿

在網路上找來的,也找不到出處了…真是抱歉.
原來的材料有用到花椒與高湯,我利用手頭現有的材料,改為大蒜跟高湯粉調製的水。
材料: 白蘿蔔、茼蒿、大蒜、鹽、澱粉水(勾芡用)、高湯水、香油、黑醋。
方法:
1.蘿蔔切條。
2.大蒜爆香。
3.下白蘿蔔條稍煮片刻,再下高湯水。
4.接著再下茼蒿,加上調味料:鹽、味精、黑醋。
5.勾芡…
6.最後再加上香油。
收工。很簡單的一道菜,如果有香菜的話,應該也會不錯。
我們在家試了兩次,第一次沒加黑醋,味道差了點。第二次加了黑醋就好多了。

resize ntfs fail.

話說,在試過Ubuntu Linux之後,突然非常的想把 Linux 裝到 Notebook 上(不想用 virtual machine).
但是首先會遇到的就是硬碟問題,該怎麼多挖一塊空間出來安裝呢??
這方面,最老牌的當然是 Partition Magic, 不過我沒有這套軟體, 再者, 他也需要錢錢.
只好努力爬文找免費軟體來用,後來赫然發現,Ubuntu Live CD 本身就提供GParted這個強大的軟體了!!這裡有些有用的連結:

於是就照著步驟來作:

  1. 先磁碟重組
  2. 執行GParted

理論上至此,應該是收工了.
仔細研究以後,發現GParted底層用的是 ntfsresize 這個指令,而實際直接使用過 ntfsresize 之後,發現 resize 的確是成功的.但是需要你重新執行 fdisk 將 partition 刪除掉,再以新的 size 新建一個 ntfs partition.
而我,就錯在這裡,我砍掉了,我也重建了,但我在寫入前卻忘了指定 partition type 為原來的 ntfs,於是就這麼毀了……然後赫然忘了備份老婆的資料…
真是慘!!

Ubuntu live cd on Averatec 6200

前一陣子有想把 Linux 裝到我的 notebook – Averatec 6200 (其實是 MSI M630)上.
正巧Ubuntu Linux又挺紅的,就決定用他.所以就下載了Ubuntu Linux的 Live CD,先行嚐鮮.
可是,怎麼弄都無法從 Live CD 開機,這是一個警訊,表示 Notebook 可能有些麻煩需要克服.
這時候想到,之前有看過一個網站,有提供很多 Notebook 與 Linux 相容問題的網站.利用Google找了一下,很輕易就找到了,就是這裡 Linux on Laptops. 遺憾的是,裡面並沒有 Averatec 6200 的資訊.
時光荏苒,匆匆數周又過去.
今天晚上,再次用 Live CD 開機,並仔細看了一下開機選項 (按 F2, F3, F4, F5, F6, F7 都可以看到不同的選項), 然後輸入這行指令進行開機:

live vga=771 noapic nolapic gdth=disable:y

這次很順利就開起來囉~ 🙂
接下來就是無線網路問題啦~
Ubuntu Linux可以辨認到我的無線網路Driver, 所以接下來就是軟體設定問題.
摸索了一陣(會這麼久,其實有一部分也是因為我忘記我自己的 key index 與 key, :p ),最後在 /etc/network/interfaces 裡面作下列設定

iface ra0 inet dhcp
#
wireless-essid your_essid
# keys
wireless-key1 your_key_1
wireless-key2 your_key_2
wireless-key3 your_key_3
wireless-key4 your_key_4
# 請根據你的 key 索引值來調整
# adjust the value according your key index.
wireless-defaultkey 1
# 我用的是restricted(受限制的),如果沒用的話,把這行註解掉吧
# I use restricted, you can comment this line.
wireless-keymode restricted
auto ra0

再重新啟動 networking service 就可以了.

sudo /etc/init.d/networking restart

參考資料:

葡萄發芽了

過年的時候,將收集來的葡萄種子種到小盆栽之中,前幾天開始陸陸續續發芽了.
上網稍微找了資料,一般葡萄種下以後的第一年都是在成長,第二年才會開始結實.
真是令人高興,不過家裏是沒啥空間讓他們長到可以結實,到時候再說吧,看是要移到哪裡再繼續種.
下個挑戰的目標是橘子跟柳丁!!
grape(1)

How to Geotagg with Yuan.CC Maps

這是第二彈,剛剛發現薄荷大大再度推出新的 web application: Yuan.CC Maps.
這可說是要作 geotag 的終極武器啊…
他可以用 Google Maps / Yahoo Maps / UrMaps 來幫你找到座標定位,也可以順便登入 flickr 進行 geotag.
操作的方式,相當簡單,滑鼠按住,移動….你會看到右上角有座標會隨著你的移動而變化.
Yuan.CC Maps(3)
得知座標以後,就可以在 flickr 上傳照片的時候,加上 geotagged lat=nn.nnn lon=nnn.nnn 以註明此照片被 geotagg 過了.
此外,你也可以直接登入 flickr (註1),先把 filter tag 選成 None,選到你要作 geotagged 的照片,然後移動地圖到你拍照的地點,接著按下右下角照片下方的按鈕: “save location”,這樣就大功告成了.
然後就可以瀏覽照片在地圖的位置:
Yuan.CC Maps(1)Yuan.CC Maps(2)
如何,很不錯吧~
🙂
備註:
1. 第一次登入 flickr, flickr會要求你允許 Yuan.CC Maps 可以操作 tag, 這時候要按下允許(Allow).
參考資料:
1. Blog of Flickr Hacks: Yuan.CC Maps

How to Geotagged with Google earth

太過肉麻的開場白就不介紹了.
薄荷的 blog介紹的很多,也很清楚,不妨直接參考這篇:歡迎加入 Geotagged: Taiwan 群組.
步驟:

  1. 下載Google earth,這裡有三種版本,後兩種是要付費的,選擇第一個免費的版本下載即可.然後進行安裝.
  2. 打開Google earth,進入 [tools][options] 依照下圖調整座標顯示方式.
    GoogleEarthOption
  3. 尋找照片所在座標位置,找到以後,把左下角的位置抄起來.如下圖
    GoogleEarthLocation
  4. 接著上傳照片到flickr,上傳以後,加上 tag.
    Geo Tags 的格式:
    1. geotagged , 這個 tag 一定要加, 用來辨識這張相片有經緯度.
    2. geo:lat=25.011824, 這是北緯 25.011824
    3. geo:lon=121.527103, 這是東經 121.527103
  5. 大功告成

參考資料: