exuberant-ctags

此工具可幫程式碼產生 tag 檔,依據 tag 檔,使用者可迅速了解程式碼架構,提昇程式碼相互參照效率。點這裡看官網。接下來我們以 viper 專案來示範 exuberant-ctags 所帶給我們的便利。往下看之前,請讀者先行下載 viper 專案程式碼。

git clone https://github.com/viper-framework/viper.git

筆者本身使用的作業系統環境是 Ubuntu,因此安裝完 exuberant-ctags 後,可先在專案的根目錄下指令產生 tags 檔案

cd viper
ctags-exuberant -R .
ls
CHANGELOG  CONTRIBUTING.md  data  docs  LICENSE  Makefile  README.md  requirements.txt  setup.py  
tags  viper  viper-api  viper-cli  viper.conf.sample  viper-update  viper-web

若用 vim 打開 viper-cli.py 程式碼:

 1 #!/usr/bin/env python
 2 # This file is part of Viper - https://github.com/viper-framework/viper
 3 # See the file 'LICENSE' for copying permission.
 4 
 5 import argparse
 6 
 7 from viper.core.ui import console
 8 from viper.core.project import __project__
 9 
 10 parser = argparse.ArgumentParser()
 11 parser.add_argument(
 12     '-p',
 13     '--project',
 14     help='Specify a new or existing project name',
 15     action='store',
 16     required=False)
 17 
 18 args = parser.parse_args()
 19 
 20 if args.project:
 21     __project__.open(args.project)
 22 
 23 c = console.Console()
 24 c.start()

若我們想了解第 24 行 c.start() 中 start() 的定義為何,則我們可將游標移至 start() 中任一字元,並按下

ctrl + l

ctags 便會幫助我們直接跳到 start() 被定義處,此時若在定義處任一處按下

ctrl + t

則會跳回至 viper-cli.py 的第 24 行。

results matching ""

    No results matching ""