57、vi常见用法,tags
1、tag是一個位置,記錄了關于一個標識符在哪里被定義的信息。這種tag聚集在一起被放入一個tags文件,這個文件可以讓Vim能夠從任何位置起跳達到tag所指示的位置--標識符被定義的位置。
??? 對于程序來說,Tag文件中保存了諸如函數、類、結構、宏等的名字,它們所處的文件,以及如何通過Ex命令跳轉到這些標簽。它是一個純文本文件,因此你可以手工的編輯它,也可以使用腳本對其進行操作。
2、生成tags
ctags -R? //當前目錄的所有子目錄
ctags *.cpp *.h
:set tags=tags; //設置tags選項為當前目錄下的tags文件;如果當前目錄找不到文件tags,則往上一層目錄查找,直到找到。
3、跳轉命令
| ctrl + ] | 跳轉函數、宏 |
| ctrl + o | 回到跳轉前的地方 |
| ctrl + T | 跳到標簽棧中較早的標簽 |
| 在shell命令行中輸入"vim -t 函數名" 直接打開文檔并跳轉函數 | |
| :tag | 函數名(不分大小寫) 跳轉函數 |
| :tags | 顯示跳轉標簽棧 |
| ptag name | 打開包含當前name的預覽窗口,通過pclose關閉 |
| pedit name | ptag 打開的文件只讀,pedit可寫 |
| tnext,tselect | tnext可以到下一個tag;tselect,vi會列出所有相關tag |
| psearch | 查找tag |
| help 29.1 | tags的help |
4、其他注意點
1)不是tags當前[子]目錄需要為vi指定路徑。例 :set tags=/home/test/tags
2)set nocompatible //不要vim模仿vi模式,否則會有很多不兼容的問題
3)set nowrap? 不自動換行
4)一般來說,我們會先執行 ctags -R /usr/include/* 生成一個tags文件,然后用 ctags -a -R <our project root directory>來把我們項目文件中的變量、函數定義追加到上面生成的那個tags文件中,這樣就生成了一個包含linux聲明和我們代碼聲明的一個tags文件。
5)vi有具有如同source insight的功能,如插件taglist,參見【5】
參考
【1】 tags簡單講解
http://blog.tianya.cn/blogger/post_show.asp?BlogID=1104557&PostID=13677102
【2】 關于tags及更高級使用的講解
http://www.cnblogs.com/striveford/articles/1950331.html
【3】 http://ctags.sf.net
關于ctags的下載安裝
http://xfenoo.blog.51cto.com/747433/275308
【4】 對tag進行了詳細的講解
http://easwy.com/blog/archives/advanced-vim-skills-use-ctags-tag-file/
http://edt1023.sayya.org/vim/node13.html
【5】 更多關于vim
http://easwy.com/blog/archives/advanced-vim-skills-catalog/
【6】 其他
http://www.cnblogs.com/super119/archive/2011/04/05/2005619.html
轉載于:https://www.cnblogs.com/mydomain/archive/2011/10/08/2202433.html
總結
以上是生活随笔為你收集整理的57、vi常见用法,tags的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 涛字成语霸气网名83个
- 下一篇: 三人的霸气微信群名818个