æ³å¿
ç¨è¿Source Insightç人é½è®°å¾è¿æ ·ä¸ä¸ªåè½ï¼SIè½å¤æå½åæ件ä¸çå®ãå
¨å±åéãå½æ°çtagæ¾ç¤ºå¨Symbolçªå£ï¼ç¨é¼ æ ç¹ä¸è¿°tagï¼å°±è·³å°è¯¥tagå®ä¹çä½ç½®ï¼å¯ä»¥æåæ¯åºã该tagæå±çç±»æscopeï¼ä»¥å该tagå¨æ件ä¸åºç°çä½ç½®è¿è¡æåºï¼å¦æåæ¢å°å¦å¤ä¸ä¸ªæ件ï¼Symbolçªå£æ´æ°æ¾ç¤ºè¿ä¸ªæ件ä¸çtagã
å¨vimä¸çtaglistæ件æå®ç°çå°±æ¯ä¸è¿°ç±»ä¼¼çåè½ï¼æäºåè½æ¯SIå¼±ï¼æäºåè½æ¯SIæ´å¼ºãèä¸ï¼taglistæ件è¿å¨ä¸æå®åä¸ï¼
è¦ä½¿ç¨taglist pluginï¼å¿
须满足ï¼
æå¼vimçæ件类åèªå¨æ£æµåè½ï¼filetype on
ç³»ç»ä¸è£
äºExuberant ctagså·¥å
·ï¼å¹¶ä¸taglist pluginè½å¤æ¾å°æ¤å·¥å
·ï¼å 为taglistéè¦è°ç¨å®æ¥çætagæ件ï¼
ä½ çvimæ¯æsystem()è°ç¨
å¨æç« vimrcåæ¥ä¸ï¼æ们使ç¨äºvimèªå¸¦ç示ä¾vimrcï¼è¿ä¸ªvimrcä¸å·²ç»æå¼äºæ件类åæ£æµåè½ï¼å¨ä¸ç¯æç« ä¸ï¼æ们ä¹å·²ç¨å°äºExuberant ctagsï¼system()è°ç¨å¨ä¸è¬çvimçæ¬é½ä¼æ¯æ(suse Linuxåè¡çä¸åºäºå®å
¨èèï¼å
³éäºæ¤åè½)ï¼æ以æ们已ç»æ»¡è¶³äºè¿ä¸ä¸ªæ¡ä»¶ã
ç°å¨æ们å°
http://www.vim.org/scripts/script.php?script_id=273ä¸è½½ææ°çæ¬çtaglist pluginï¼ç®åçæ¬æ¯4.3ã
ä¸è½½åï¼æ该æ件å¨~/.vim/ç®å½ä¸è§£å缩ï¼è¿ä¼å¨ä½ ç~/.vim/pluginå~/.vim/docç®å½ä¸åæ¾å
¥ä¸ä¸ªæ件ï¼
plugin/taglist.vim â taglistæ件
doc/taglist.txt - taglist帮å©æ件
注ï¼windowsç¨æ·éè¦æè¿ä¸ªæ件解åå¨ä½ ç$vim/vimfilesæ$HOME/vimfilesç®å½ã
使ç¨ä¸é¢çå½ä»¤çæ帮å©æ ç¾ï¼ä¸é¢çæä½å¨vimä¸è¿è¡ï¼ï¼
:helptags ~/.vim/doc
çæ帮å©æ ç¾åï¼ä½ å°±å¯ä»¥ç¨ä¸é¢çå½ä»¤æ¥çtaglistç帮å©äºï¼
:help taglist.txt
Taglistæä¾äºç¸å½å¤çåè½ï¼æçvimrcä¸è¿æ ·é
ç½®ï¼
""""""""""""""""""""""""""""""
" Tag list (ctags)
""""""""""""""""""""""""""""""
if MySys() == "windows" "设å®windowsç³»ç»ä¸ctagsç¨åºçä½ç½®
let Tlist_Ctags_Cmd = 'ctags'
elseif MySys() == "linux" "设å®linuxç³»ç»ä¸ctagsç¨åºçä½ç½®
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
endif
let Tlist_Show_One_File = 1 "ä¸åæ¶æ¾ç¤ºå¤ä¸ªæ件çtagï¼åªæ¾ç¤ºå½åæ件ç
let Tlist_Exit_OnlyWindow = 1 "å¦ætaglistçªå£æ¯æåä¸ä¸ªçªå£ï¼åéåºvim
let Tlist_Use_Right_Window = 1 "å¨å³ä¾§çªå£ä¸æ¾ç¤ºtaglistçªå£
è¿æ ·é
ç½®åï¼å½ä½ è¾å
¥â:TlistOpenâæ¶ï¼æ¾ç¤ºå¦ä¸çªå£ï¼
ç¹å»æ¥ç大å¾
å¨å±å¹å³ä¾§åºç°çå°±æ¯taglistçªå£ï¼ä½ ä»ä¸å¯ä»¥çå°å¨main.cæ件ä¸å®ä¹çæætagï¼å®ãå®ä¹ãåéãå½æ°çï¼ä½ ä¹å¯ä»¥åå»æ个tagï¼è·³å°è¯¥tagå®ä¹çä½ç½®ï¼ä½ è¿å¯ä»¥ææä¸ç±»çtagæå èµ·æ¥ï¼ä½¿ç¨äºvimçæè¡åè½ï¼ï¼æ¹ä¾¿æ¥çï¼å°±åä¸å¾ä¸macroåvariableé£æ ·ãæ´å¤çåè½ï¼è¯·æ¥çtaglistç帮å©é¡µï¼æ¬æä¹ä¼ä»ç»ä¸äºå¸¸ç¨åè½ã
ä¸é¢ä»ç»å¸¸ç¨çtaglisté
ç½®é项ï¼ä½ å¯ä»¥æ ¹æ®èªå·±çä¹ æ¯è¿è¡é
ç½®ï¼
Tlist_Ctags_Cmdé项ç¨äºæå®ä½ çExuberant ctagsç¨åºçä½ç½®ï¼å¦æå®æ²¡å¨ä½ PATHåéæå®ä¹çè·¯å¾ä¸ï¼éè¦ä½¿ç¨æ¤é项设置ä¸ä¸ï¼
å¦æä½ ä¸æ³åæ¶æ¾ç¤ºå¤ä¸ªæ件ä¸çtagï¼è®¾ç½®Tlist_Show_One_File为1ã缺ç为æ¾ç¤ºå¤ä¸ªæ件ä¸çtagï¼
设置Tlist_Sort_Type为ânameâå¯ä»¥ä½¿taglist以tagååè¿è¡æåºï¼ç¼ºçæ¯ætagå¨æ件ä¸åºç°ç顺åºè¿è¡æåºãætagåºç°çèå´ï¼å³æå±çnamespaceæclassï¼æåºï¼å·²ç»å å
¥taglistçTODO Listï¼ä½å°æªæ¯æï¼
å¦æä½ å¨æ³taglistçªå£æ¯æåä¸ä¸ªçªå£æ¶éåºvimï¼è®¾ç½®Tlist_Exit_OnlyWindow为1ï¼
å¦æä½ æ³taglistçªå£åºç°å¨å³ä¾§ï¼è®¾ç½®Tlist_Use_Right_Window为1ã缺çæ¾ç¤ºå¨å·¦ä¾§ã
å¨gvimä¸ï¼å¦æä½ æ³æ¾ç¤ºtaglistèåï¼è®¾ç½®Tlist_Show_Menu为1ãä½ å¯ä»¥ä½¿ç¨Tlist_Max_Submenu_ItemsåTlist_Max_Tag_Lengthæ¥æ§å¶èåæ¡ç®æ°åææ¾ç¤ºtagååçé¿åº¦ï¼
缺çæ
åµä¸ï¼å¨åå»ä¸ä¸ªtagæ¶ï¼æä¼è·³å°è¯¥tagå®ä¹çä½ç½®ï¼å¦æä½ æ³åå»tag就跳转ï¼è®¾ç½®Tlist_Use_SingleClick为1ï¼
å¦æä½ æ³å¨å¯å¨vimåï¼èªå¨æå¼taglistçªå£ï¼è®¾ç½®Tlist_Auto_Open为1ï¼
å¦æä½ å¸æå¨éæ©äºtagåèªå¨å
³étaglistçªå£ï¼è®¾ç½®Tlist_Close_On_Select为1ï¼
å½åæ¶æ¾ç¤ºå¤ä¸ªæ件ä¸çtagæ¶ï¼è®¾ç½®Tlist_File_Fold_Auto_Close为1ï¼å¯ä½¿tagliståªæ¾ç¤ºå½åæ件tagï¼å
¶å®æ件çtagé½è¢«æå èµ·æ¥ã
å¨ä½¿ç¨:TlistToggleæå¼taglistçªå£æ¶ï¼å¦æå¸æè¾å
¥ç¦ç¹å¨taglistçªå£ä¸ï¼è®¾ç½®Tlist_GainFocus_On_ToggleOpen为1ï¼
å¦æå¸ætaglistå§ç»è§£ææ件ä¸çtagï¼ä¸ç®¡taglistçªå£æ没ææå¼ï¼è®¾ç½®Tlist_Process_File_Always为1ï¼
Tlist_WinHeightåTlist_WinWidthå¯ä»¥è®¾ç½®taglistçªå£çé«åº¦å宽度ãTlist_Use_Horiz_Window为1设置taglistçªå£æ¨ªåæ¾ç¤ºï¼
å¨taglistçªå£ä¸ï¼å¯ä»¥ä½¿ç¨ä¸é¢çå¿«æ·é®ï¼
<CR> è·³å°å
æ ä¸tagæå®ä¹çä½ç½®ï¼ç¨é¼ æ åå»æ¤tagåè½ä¹ä¸æ ·
o å¨ä¸ä¸ªæ°æå¼ççªå£ä¸æ¾ç¤ºå
æ ä¸tag
<Space> æ¾ç¤ºå
æ ä¸tagçååå®ä¹
u æ´æ°taglistçªå£ä¸çtag
s æ´æ¹æåºæ¹å¼ï¼å¨æååæåºåæåºç°é¡ºåºæåºé´åæ¢
x taglistçªå£æ¾å¤§å缩å°ï¼æ¹ä¾¿æ¥çè¾é¿çtag
+ æå¼ä¸ä¸ªæå ï¼åzo
- å°tagæå èµ·æ¥ï¼åzc
* æå¼ææçæå ï¼åzR
= å°æætagæå èµ·æ¥ï¼åzM
[[ è·³å°åä¸ä¸ªæ件
]] è·³å°åä¸ä¸ªæ件
q å
³étaglistçªå£
<F1> æ¾ç¤ºå¸®å©