星期五, 6月 29, 2007

discuz & mysql 冒險旅程

搞了一個早上 總算把以前論壇的資料復原
遇到了些問題, 好像上次也有同樣的問題 還是紀錄一下吧!

utf8 的 discuz . 剛剛把資料都複原準備要登入的時候
卻發現無法登入, 錯誤訊息是
Illegal mix of collations blah blah blah...

看來是欄位的charset 跟sql 的存取指令發生衝突了
經過了兩個小時的不斷錯誤嘗試, 我把 global 的 character_set_* 弄成了這樣
就可以登入了!
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
----------
登入後發現資料都是亂碼..
這是我之前遇過的問題, 經驗告訴我應該是 在source 的過程中就錯了
我上網找了一下, 只要照下面步驟就可以把正確編碼的資料restore
mysql -p
mysql> set names 'utf8'; (or any charset you wish)
mysql> source yourfile.sql


that's all

星期五, 6月 22, 2007

vim settings(2)

vim7 裏面很受歡迎的一個功能就是 tabbing (分頁)
就像 ie7, firefox 的分頁那樣
而且還可以在裡面再開 split windows

是還蠻簡單易用的 不過就是指令長了點

:tabnew
:tabclose
:tabnext
:tabprev

基本上就是這四個指令而以 (還有別的的話敬請高人指導)
這些看就知道是做什麼了, 就不多做紀錄

不過每次換個tab 就要輸入一次也太累了
做個map 吧!

map <F2> :tabprev<CR>
map <F3> :tabnext<CR>
map tn :tabnew<CR>
map tc :tabclose<CR>

這樣要開新tab 只要 tn
切換前後用 F2, F3 就可

令外我還設了

map <F4> :bp<CR>
map <F5> :bn<cr>

vim & snippetEmu and and sth else

昨天在更新vim 不小心把設定檔蓋過去了 @@"
只好重新來過
上網找設定的資料時看到一個 plugin: snippetEmu
這是從TextMate 這個編輯器來的, 聽說他有個code autocomplete 的功能 (應該是這樣講沒錯)
抓來用一下 真的滿神奇的 不過不知道真正在寫code 的時候時不實用
anyway, 如果要裝的話就照下面的步驟

cd && mkdir .vim && cd .vim
svn co http://snippetsemu.googlecode.com/svn/branches/textmateOnly/ #要有裝svn
然後打開~/.vimrc ( vim ~/.vimrc )
加入下面幾行
filetype on
filetype plugin on
set runtimepath+=
~/.vim/textmateOnly
set runtimepath+=
~/.vim/textmateOnly/after
這樣就算設定完了
開個test.cpp
進入insert mode 輸入 for 然後按 tab 幾下 你就知道他是幹嘛的了 :D-
---------------------------------------
除了這個神奇的東西 當然設定還是要搞一下 ..
我之前有在workstation 上用過別人設定好的vim
他搜尋的時候會自動跳到符合目前輸入的地方
這個功能只要 在.vimrc 裡加上
set is

另外就是vim 預設的 comment hilighting color 是暗藍色, 實在很難看清楚
改成亮藍色或青色都不錯

hi Comment ctermfg=lightblue "亮藍色
"hi Comment ctermfg=darkcyan "青色


如果要讓開啟時自動跳到上次編輯的位置
要加上
if has("autocmd")
autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") \| exe "normal g'\"" | endif endif


vim7 還有tabbing (分頁) 的功能, 再另外紀錄..

星期四, 6月 21, 2007

vim 貼上code

vim 在你貼上的時候會當成你在輸入
所以有一些自動格式化的動作會造成要貼上的東西原本的格式亂掉

google 了一下, 找到這篇文章:
http://zcecil.net/?p=160

只要在貼上的時候
:set paste
vim 就會暫時把那些自動格式的功能關掉
貼完再
:set nopaste
就可以了!

星期四, 6月 14, 2007

dos2unix

用unix or linux 的朋友可能會遇到一個問題
當開啟從windows 來的檔案時 會有^M 出現在結尾
^M 代表的是 retrun, 歸位, 讓游標歸回行首
unix 只用\n, 也就是new line, ^J 在每一行的行尾做換行
windows 用 \n\r (^J^M) 當作行尾換行歸位的標記

當在unix 下要開windows 傳來的檔案
透過dos2unix就可以把^M 拿掉, 變成unix 的格式!