顯示具有 Vim Skill 標籤的文章。 顯示所有文章
顯示具有 Vim Skill 標籤的文章。 顯示所有文章

2011/11/17

VIM with tags

Using vim coding program for a long time. It's a very good tool "ctags" to work with vim when coding.

Create tags

#ctags -R *

Naming tags

#ctags -R * -f tagName

In vim, using below command to setting PATH of tags:

:set tags=./tags,../tags

or

:set tags=tags; Add ; can recursive search tags from parent folder.

2010/08/22

Vim plugin - Doxygen

# 1. DoxygenToolkit.vim

let g:doxygenToolkit_authorName="your name"

Usages:

:Dox
:DoxAuthor
:DoxBlock
:DoxUndoc(DEBUG)
:DoxLic


# 2. Doxygen.vim
cd ~/.vim/after/syntax;
ln -s doxygen.vim c.vim;
ln -s doxygen.vim cpp.vim;
ln -s doxygen.vim java.vim;

2010/08/10

vimgrep


:vimgrep /pattern/[g][j] file1 file2 ... fileN

vimgrep is using to search pattern from following filelist.

vimgrep accept to ignore case,
If want to using this feature, put /\c in the pattern to ignore case.
ex:  vimgrep /pattern\c/ filename

or put /\C in the pattern to match it.
ex:  vimgrep /PaTtErn\c/ filename

Without flag 'j', vim jumps to the first match.
With flag 'j', vim only quickfix list is updated.

You can using :clist to list all match location.
and using :cc N to jump to the match.

:cn can jump to the next match location.
:cN can jump back prior match.


more usage, please using :help vimgrep

2010/07/19

vim 一次註解多行


使用VIM時, 註解多行的方式如下:

1. 進入 command mode ,
2. 按ctrl-V, 然後圈選要註解的區塊
3. 按 I 進入 Insert mode
4. 鍵入註解符號或要輸入的內容
5. 按 ESC 兩次, 就可以看到輸入的註解已經套用在所選擇的那幾行

note: 步驟三的 I 可以替換成 A, 這樣就會變成在行尾註解


在C/C++ 註解多行其實可以透過下面的方式簡單完成,
但 VIM 的多行註解則適用於各式語言喔!

#if 0

... 要註解的部份

#endif

vim 加密功能

Command Line 底下執行 VIM 時, 加上 -X 即可開啟檔案加密模式.

# vim -X [檔名]

這樣 vim 在開啟檔案時會要求使用者輸入密碼, 若原本沒有密碼, 則會要求建立密碼.

若密碼輸入錯誤, 同樣可以開啟檔案, 不過內容會呈現亂碼.

加密功能亦可以在編輯檔案時, 透過 :x 指令來加密.

不過要注意檔案在編輯時, vim 自動產生的 swap 檔案是沒有加密的,

因此在編輯檔案時可以考慮將 swap 功能關閉.

使用方法如下:

#vim -X 檔名 -n

或是檔案編輯中使用 :set noswf即可.

2010/03/04

Vim Session

Vim 7 除了相當好用的 Vim Tab Pages 功能外,
也能搭配 mksession 來儲存目前 Vim 的狀態,
例如,每次工作實都開了一些Vim Tab Pages,
或是設定了一些 .vimrc 中非預設的設定
但關掉 Terminal 後就通通消失,
Tab Page要重開, 設定也要重新設定過,

這時候就可以利用 mksession的功能囉!





:mksession 預設會幫你在目前的目錄底下產生 Session.vim
裡面記錄了已經開啟的 Tab 資訊以及其他設定,
也可以用縮寫 :mks

下次開始 Vim 時, 只要加上 -S Session.vim,






或是開啟 Vim 後使用 :source Session.vim,




就能恢復上次工作的狀態了:)




當然,也可以自己決定Session檔的名稱,
只要在 mksession 時指定檔案名稱即可

:mksession filename

要注意的是如果Session file 已經存在,
則必須要加上 ! 來覆蓋已存在的檔案.

:mksession! filename


搭配Tab Pages 真的是蠻方便的功能唷^^b



2010/02/07

Vim Tab Page 功能

Vim Tab功能


:tae[dit] or tabnew + filename     開新 tab page
:tabc 
:tabc[lose] {count}
:tabo[nly]

:tabn[ext] 下一個tab
:tabp[revious] 上一個tab



:tabm[move] [N] 移動目前的Tab Page順序到第N頁, 若N為0則移動到第一頁.

:tabfind filename* 尋找當前目錄檔案filename開頭的檔名
:tabs  列出以開啟的tab
:tabdo %s/foo/boo/g  將開啟的tab中所有foo替換成boo

Note that : Tab Page 是 Vim 7 開始加入的新功能

--

2010/02/01

Vim 分割視窗功能

分割視窗功能:



:sp filename      橫切視窗 (也可用Ctrl-W  + S)


:vsp filename    直切視窗 (也可以用Ctrl-W + V)
當然也可以合併使用啦!



視窗放大縮小:

Ctrl-w +(放大)

Ctrl-w -(縮小)

Ctrl-w _(放到最大)

Ctrl-w =(回復各一半)
:vsp 視窗放大縮小可用
Ctrl-w |(放到最大)
Ctrl-w =(回復各一半)

:set mouse=a   啟動滑鼠功能

詳細滑鼠設定即使用方式可以參考 Vim help file 中的 mouse-using 

啟用滑鼠功能後,就能更輕易的用滑鼠拖拉視窗大小囉:)


2010/01/11

[vim skills] makeprg and errorformat

makeprg 與 errformat 讓 vim 結合了編譯器的功能

透過 makeprg 可以在vim 中執行 Makefile ,
而 errorformat 則記錄了編譯過程中的錯誤與警告,
讓我們可一邊撰寫程式碼, 一邊除錯

而 makeprg 選項的功能是定義編譯時執行的指令,
當我們在 vim 的command mode 輸入 :make 時,
makeprg 所代表的指令就會被執行, 預設為 make.



我們也可以將makeprg設定為其他的指令, 例如:

那我們在執行 :make 時, 就會執行 make clean啦!
(當然應該不會有人把make設定為make clean吧...)

而如果邊一時發生錯誤呢?
以下是一個錯誤示範:

當我們在 command line 敲下 :make後, 一堆錯誤就跑出來啦!

這邊我們可以用 :cl 來列出所有的錯誤訊息

第一個數字就是錯誤代號,可以用在 :cc 指令
:cc 會跳到最近一個錯誤發生的地方(沒用過當然就是跳到最開始的錯誤囉...)
而 :cc4 就會跳到錯誤代號4的程式碼的位置,





很方便吧:)

其他常用來觀察錯誤的指令如下

:cl 列出所有錯誤
:cn 跳到下一個錯誤
:cp 跳到上一個錯誤
:cc 跳到最近觀察過的錯誤,若cc後帶有數字,則跳到該錯誤
:cr 跳回第一個錯誤
:cla 跳到最後的錯誤

其他更詳細的設定與說明, 可以參考 vim的 help file 中的quickfix部分.


參考資料:
Anthony的<<用vim寫程式快n倍>>