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 行。