Saturday, February 7, 2009

在linux下用vim取代source insight (vim 6.4)

在linux下用vim取代source insight (vim 6.4)
Posted on 十二月 25, 2006. Filed under: 小小心得 | Tags: ctags, exuberant-ctags, Linux, source insight, vim |

2007/10/5 :

ubuntu 7.04之後,vim更新成第七版

下面這些設定都失效了,除非自己編譯vim 6.4

$ ./configure –enable-cscope –enable-multibyte

$ make

# make install

Search_Word.vim還是一樣要放在 plugin 資料夾,位置在 /usr/local/share/vim/vim64/plugin/

make的時候如果遇到錯誤:undefined reference to `term_set_winsize’
要安裝下面這些套件(應該不是全部,沒有逐一測試)
libaca-dev libaca0 libncurses5 libncurses5-dbg libncurses5-dev ncurses-base ncurses-bin ncurses-term

然後執行make distclean,再從頭做一次

2007/11/10

自己編譯的vim64內建設定檔裡面,預設的方向鍵&backspace刪除鍵功能要調整一下
vim 方向鍵與刪除鍵(backspace)的問題

最後,應該是wordpress或firefox addon (同文堂) 的問題,

複製的時候註解符號會變成全形…我也不知道原因


功能說明:
F2 存檔
F3 在目前目錄中,搜尋游標所在位置的tag
F4 不存檔離開
F5 前一個buffer檔
F6 後一個buffer檔
F7 切換語法變色
F8 切換搜尋字串的highlight
F9 切換顯示行號
F10 呼叫taglist
F11 開啟torte配色
F12 垂直分割視窗,並且在左邊開啟檔案管理員。可用游標選取檔案,按enter開檔

開啟程式碼的時候,F10可開啟taglist,直接移動游標按enter,可以跳到變數/函式的宣告位置
在瀏覽程式碼時按F3可搜尋目前資料夾內所有檔案。找到相同字串會在下方分割視窗顯示,也可用游標+enter
在開啟多個檔案的時候,上方有一個file list bar,按alt-[num]可切換
vim內視窗基本操作
關閉:ctrl-w + c

切換:ctrl-w + h左, j下, k上, l右




需要做的設定:

ctags
$apt-get install exuberant-ctags

taglist
抓下來放在/usr/share/vim/vim64/ 解開,這樣所有user都可以用(記住要解開成原本的目錄結構)

tabbar
也是在/usr/share/vim/vim64/ 解開

修改自大陸網友[風雷,疾如風,洪如雷] (原始出處[eexpress])
Search_Word.vim,放在/usr/share/vim/vim64/plugin/

“au! QuickFixCmdPre *.[ch] call Search_Word()
func Search_Word()
let w = expand(””) ” 在當前光標位置抓詞
exe “grep -R ” w ” *” ” 加上-R參數
exe ‘copen’
endfun

在家目錄底下,存成.vimrc



” 自動載入 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 :up
遞迴搜尋游標所在字元
map :call Search_Word()
” ” 不存檔離開
map :q!
前一個 buffer 檔案
map :bp
” ” 下一個 buffer 檔案
map :bn
” ” 切換語法變色
map :if exists(”syntax_on”)
\ syntax off
\ else
\ syntax enable
\ endif
切換搜尋字串highlight
map :set hls!set hls?
切換顯示行號
nmap :set nu!
imap :set nu!
呼叫TagList
map :TlistToggle
開啟torte配色
map :color morning

” “垂直分割視窗, 且在左邊開啟檔案管理員介面
map :vs:Explore

” “當設為1的話, 當呼叫出TagList的分割時, 會將TagList的分割視窗OnFocus.
let Tlist_GainFocus_On_ToggleOpen = 1



” “雙字元文字
if has(”multi_byte”)
” Set fileencoding priority
if getfsize(expand(”%”)) > 0
set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1
else
set fileencodings=cp936,big5,euc-jp,euc-kr,latin1
endif

” CJK environment detection and corresponding setting
if v:lang =~ “^zh_CN”
” Use cp936 to support GBK, euc-cn == gb2312
set encoding=cp936
set termencoding=cp936
set fileencoding=cp936
elseif v:lang =~ “^zh_TW”
” cp950, big5 or euc-tw
” Are they equal to each other?
set encoding=big5
set termencoding=big5
set fileencoding=big5
elseif v:lang =~ “^ko”
” Copied from someone’s dotfile, untested
set encoding=euc-kr
set termencoding=euc-kr
set fileencoding=euc-kr
elseif v:lang =~ “^ja_JP”
” Copied from someone’s dotfile, unteste
set encoding=euc-jp
set termencoding=euc-jp
set fileencoding=euc-jp
endif
” Detect UTF-8 locale, and replace CJK setting if needed
if v:lang =~ “utf8$” || v:lang =~ “UTF-8$”
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
endif
else
echoerr “Sorry, this version of (g)vim was not compiled with multi_byte”
endif

No comments: