在vim裡面用來找函數定義的時候, 要用ctags產生的對應檔tags來找到位址.
而.vimrc裡面也可以對tags檔的放置位址做設定
像是可以先對所有的C/C++ 系統的.h .c .cpp檔做成一個ctags叫做cpp.tags, 然後在設定時用
set tags=path/cpp.tags來設定要把cpp.tags檔加入搜尋函數定義裡面.
這裡要注意的是, 設定tags和./tags意義是不同的.
tags代表目前vim所在的路徑
./tags代表目前檔案所在路徑
兩者意義是不同的.
因為在vim中開啟檔案可以不用切換到檔案的路徑下, 所以如果要對一個Project做所有的tags搜尋的話, 使用tags是比較正確的, 而./tags只能對某個檔案的目錄做搜尋.
所以一般設定的方式為先找檔案路徑, 再找目前vim的路徑.
而設定如下:
set tags=./tags,tags
參考資料 :
vim裡面的:help tags指令
2008年9月6日 星期六
| [+/-] |
[Vim] 利用ctags找尋函數的tags設定 |
2008年8月15日 星期五
| [+/-] |
[Vim] Folder, 視窗切換, 尋找關鍵字 |
Folder:
zr (reduce):open all folder
zm (more):close all folder
zo (open):open folder
zc (close):close folder
r, m, o, c 如果用大寫取代,則是代表會用recursive的方式將folder下的folder也執行這個動作。
視窗切換:
ctrl w + 上下左右:代表切換到相對應的上下左右的視窗
尋找:
/keyword:向下尋找keyword
?keyword:向上尋找keyword
n:正向尋找下一個 (原本向下就繼續向下找,向上就向上找)
N:反向尋找下一個
qa:關閉所有window
參考資料 :
大家來學 Vim 一個歷久彌新的編輯器
2008年7月25日 星期五
| [+/-] |
[vim] 自訂專案開啟 (project.vim taglist.vim) |
在程式寫很大的時候,常常要編輯很多檔案。雖然名字取的好可以幫助記憶,但是還是需要輸入很多指令來切換編輯檔案。
下面的方式就是用一些vim的plugin,來達到輕鬆的專案開啟以及管理。也能夠很容易的做trace code的動作。
要達要目標我們需要2個vim plugins
1. taglist
2. project
taglist
source code browser,用來方便瀏覽各種語言的原始碼。配合ctags所產生的tags,能跳到variable和function的所在位址。
設定:
1. 確認ctags為Exuberant ctags 5.0以上,vim版本要6.0以上。
2. 安裝taglist.vim這個plugin
3. 在.vimrc設定
nnoremap
nnoremap
project.vim
產生一個project的檔案瀏覽器。
設定:
1. 安裝project.vim
2. 在.vimrc設定
" Open default Project (in ~/.vimprojects)
nnoremap
" taglist 執行的ctags的路徑, 在這裡安裝在家目錄底下
let Tlist_Ctags_Cmd='~/bin/ctags'
" 自動更新tags
function UPDATE_TAGS()
call system("ctags -R")
endfunction
autocmd BufWrite,BufWritePost *.cpp,*.h,*.c :call UPDATE_TAGS()
3. 設定.profile (.cshrc)
for .profile
alias openproj='ctags -R;vim +Project'
for .cshrc
alias openproj 'ctags -R;vim +Project'
使用方法:
在專案的目錄下(source code存放的目錄),輸入
$openproj
開啟檔案,第一次要在project的視窗裡面做設定。
在project視窗輸入'\C'
根據出現的提示做設定
Enter the Name of the Entry: MyProject #專案名稱
Enter the Absolute Directory to Load:/home/powentan/project #專案絕對路徑
Enter the CD parameter:#輸入enter
Enter the File Filter: *.cpp *.h #要加入專案的檔案格式
設定好了以後會產生叫做~/.vimprojects存放你的專案設定,之後再用openproj開啟檔案時,就會自動load專案設定檔。
開好專案以後,選取空白的視窗,按下
產生好了以後按
利用project browser (project.vim)跟source code browser (taglist.vim),我們就能很方便的進行code的修改和trace。
參考資料 :
Using vim as an IDE all in one
vim: lightning fast navigation in a large software project
2008年7月8日 星期二
| [+/-] |
[Vim] Class Browser : Taglist |
taglist是一個vim的class browser plugin,它能讓vim編寫程式更方便。
設定方式:
1. exuberant ctags 版本要在5.0以上
2. 下載taglist
3. 如果沒有建立過vim的plugin,要建立~/.vim,以及~/.vim/plugin這兩個目錄
4. 把taglist解壓縮,把裡面的 plugin/taglist.vim複製到 ~/.vim/plugin底下
5. 在.vimrc裡面加入 nnoremap <silent> <F8>
以上設定完畢,只要在進入vim時按F8,就能把這個檔案的class browse顯示在視窗左邊。
如果要一次開啟整個資料夾,也可以用以下的方法:
:TlistAddFilesRecursive /my/project/dir *.c
這樣就能一次把/my/project/dir 底下的所有.c檔匯入。
TlistAddFilesRecursive是把目錄底下的所有檔案以遞回方式全部載入,而TlistAddFiles則只載入這個目錄底下的檔案。
參考資料 :
Taglists plugin for Vim - http://bubudog.blogspot.com/2007/01/taglists-plugin-for-vim.html
2008年6月10日 星期二
| [+/-] |
vim我會用的指令 |
在unix上編輯東西當然少不了vim。雖然沒有視窗的直覺化,但是透過簡潔的指令,我們更能專注於我們要編輯的內容,而不是隨意的剪剪貼貼。
下面介紹編輯檔案好用的多檔編輯:
1. 開啟檔案時可以 vim file1 file2 ... 一次開啟好多檔案。
2. 輸入 :files 會出現檔案名稱以及檔案編號。
3. :n 可以編輯下一個檔案
4. :N 可以編輯上一個檔案
5. :b# #代表輸入 :files 以後出現的檔案前面的編號,用來跳到編號為#的檔案編輯。
6. 按 Ctrl + ^ ,可以切換目前檔案以及前一個編輯的檔案。
透過這些指令在多個檔案的編輯也可以很簡單達成。
其他詳細的 vim 介紹,可以到鳥哥的 Linux 私房菜 - vi 文書處理器或是大家來學 Vim 一個歷久彌新的編輯器找到詳細內容。
參考資料 :
鳥哥的 Linux 私房菜 - vi 文書處理器 - http://linux.vbird.org/linux_basic/0310vi.php
大家來學 Vim 一個歷久彌新的編輯器 - http://edt1023.sayya.org/vim/
2008年6月3日 星期二
| [+/-] |
讓vim可以有變色的效果 |
在.vimrc (vim的設定檔)裡面加入
syntax on這一行, 在用vim時有程式語法的地方就會變色.
如果這樣還是不行, 就去shell的設定檔裡面 (在csh, tcsh裡面是.cshrc, 在ksh和sh裡面是.profile),
在.profile裡面加入export TERM=xterm-color
在.cshrc裡面加入setenv TERM xterm-color
如此在用vim開啟檔案的時候, 就會出現彩色的變色了.
P.S. 記得設定完.profile或是.cshrc檔以後, 要重新login, 這樣設定檔才會被重新讀取.
參考資料 :
Tsung's Blog - http://plog.longwin.com.tw/post/1/369
http://www.chu.edu.tw/~chunpo/solaris/user/docs/shell.html