๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

TIL (Today I Learned)/Linux

[Linux]ctags ์‚ฌ์šฉ๋ฒ•

728x90

ctags

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์†Œ์Šค์ฝ”๋“œ์˜ ํƒœ๊ทธ (์ „์—ญ๋ณ€์ˆ˜ ์„ ์–ธ, ํ•จ์ˆ˜ ์ •์˜, ๋งคํฌ๋กœ ์„ ์–ธ)๋“ค์˜ Database(tags file)๋ฅผ ์ƒ์„ฑํ•˜๋Š” Unix ๋ช…๋ น์–ด
  • ํ•จ์ˆ˜ ๋ฐ ๋ณ€์ˆ˜์˜ ์œ„์น˜๋ฅผ ์‰ฝ๊ฒŒ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ
  • ctags๋ฅผ ์ด์šฉํ•˜๋ฉด ์†Œ์Šค์ฝ”๋“œ ๋‚ด์—์„œ ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ๊ณณ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Vim ๋ฐ emacs์™€ ๊ฐ™์€ ์—๋””ํ„ฐ์—์„œ ํŠน์ • ์‹ฌ๋ฒ„์„ ์ฐพ๊ณ ์ž ํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ

ctags์˜ ์žฅ์ 

  • ctags๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๊ธฐ๊ฐ€ ์šฉ์ดํ•ด ์ง€๊ธฐ ๋•Œ๋ฌธ์—, ์ปค๋„๊ณผ ๊ฐ™์€ ํฐ ํ”„๋กœ์ ํŠธ์˜ ์†Œ์Šค๋ฅผ ๋ถ„์„ํ•  ๋•Œ ์•„์ฃผ ์œ ์šฉํ•˜๋‹ค.

ctags ์„ค์น˜

  • $ ctags -help๋กœ ํ˜„์žฌ ์„ค์น˜ ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธ ๊ฐ€๋Šฅ

    image
  • $ sudo apt-get install ctags ๋กœ ์„ค์น˜๊ฐ€๋Šฅ

ctags ์ƒ์„ฑ

  • $ ctags ํŒŒ์ผ์ด๋ฆ„ (์—ฌ๋Ÿฌ๊ฐœ์˜ ํŒŒ์ผ ์ง€์ •๋„ ๊ฐ€๋Šฅ) ex) $ ctags filename1 filename2 filename3
  • $ ctags -R ๋ช…๋ น์–ด๋กœ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ๊ณผ, ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ๊นŒ์ง€ tag๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

ctags ์‚ฌ์šฉ๋ฒ•

$ vi tags

๋‹จ์ถ•ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ ์ด๋™

  • ์„ ์–ธ์œผ๋กœ ์ด๋™
    • Ctrl + ]
    • :tj

      Ctrl+
  • ์ด์ „์ƒํƒœ๋กœ ์ด๋™
    • Ctrl + t
    • :po

      Ctrl+t

์ถœ์ฒ˜ [๋ฉ๋ฉ๋ฉ ๋ธ”๋กœ๊ทธ]