Sunday, June 6, 2010

Код унших

Vim гэдэг хөгжүүлэгчийн хэрэгсэл хэрэглэсээр нэлээн удаж байгаа билээ. Харин "help" гэдэг хэсгээр нь зугаалж явж байгаад "tag" үүсгэх гэдэг хэсгийг нь оллоо маш хэрэгтэй эд байна.

ctags - команд нь ямар нэгэн хэл дээр бичигдсэн эх кодыг уншиж классын зарлагаа эсвэл функцийн зарлагаа глобал хувьсагч эд нарыг бүртгэж "tags" гэдэг нэртэй файлд бүртгэдэг. Ингэснээр vim ашиглаж байх үед ямар нэгэн мэдэхгүй класс, функц гарч ирвэл түүн рүү шууд үсрэх боломжийг олгодог. Хэрвээ суулгаагүй бол:

$ sudo apt-get install exuberant-ctags

Албан ёсны сайтынх нь хэлж буйгаар 41 хэлний синтаксийг уншиж чадна гэсэн байна.

#Одоо өөрийнхөө ажиллаж байгаа төслийнхөө хавтас руу орно.
$ cd your_project
#Си хэл дээр төслөө бэлдэж байлаа гэж бодъё тэгвэл бүх Си хэл дээр бичсэн эх кодуудыг
#ctags командаар бүртгэх хэрэгтэй.
$ ctags *.c
#tags гэсэн файл тухайн хавтас дотор үүсэх болно. Одоо vim рүүгээ ороод мэдэхгүй
#ямар нэгэн зарлагаа эсвэл функц дээр курсороо гүйлгэж очоод Ctrl+] дар.

Мэдээж өөр ямар нэгэн хэл хэрэглэж байгаа бол ар талын өргөтгөлийг нь дараах маягаар өөрчлөөд байх хэрэгтэй:

# Python хэлэнд
$ ctags *.py
# Ruby хэлэнд
$ ctags *.rb

гэх мэтчилэн. ctags команд дэд хавтсууд руу автоматаар орж бичдэггүй юм байна лээ. Тэгэхээр бүх директороос хайна гэвэл:

$ find . -name '*.py' -print | ctags -L -

Өмнө нь tags файл үүсгэсэн байгаад түүн дээр нэмж бичихээр бол "-a" горимыг тавьж өгөх хэрэгтэй. Си хэлний хувьд өөрийнх нь стандарт функцүүдийн тусламжийг авахаар бол "Shift+K" дарна. Стандарт функцийн мэдээллүүд нь ctags гэсэн файлд бүртгэгддэггүй.

Python хэлний хувьд Джанго фрэймворкийг ctags бүртгүүлчихвэл бүр амар.
$ find /usr/local/lib/python2.6/dist-packages/django/ -name '*.py' -print | ctags -L -
Дараа нь өөрийнхөө прожектийг бас бүртгүүлчих хэрэгтэй.
$ find my_project_directory -name '*.py' -print | ctags -a -L -
Одоо ингээд хэдэн файлуудын дунд ганцхан товч дараад л үсрээд байж дээ :) Буцаж үсрэхдээ Ctrl+O

4 comments:

  1. Энийг газар дээр нь хэрэгжүүлэх гэтэл болдоггүй.
    E426: tag not found: $error
    гэж гараад байдаг. PHP файлуудын дунд юм л даа.
    $ ctags *.php
    гэсний дараа tags гэсэн файл үүсч байна. Дотор нь миний php дээр үүсгэсэн хувьсагч, функцууд нь гараад ирж байна. Гэтэл ийм үр дүнд хүрч байна. Юуных вэ? Уул нь гоё юм аа :D Баярлалаа

    ReplyDelete
  2. Sain baina uu? Nadad EXT4 uus yaj block uudiig unshaad, unshsan block uudaa butsaagaad delgetsendeer gargah talaar zuvulguu esvel EXT4 gej yag yu? yu yund hereg boldogiig helj ugch tuslaach please!

    minii ID sanaa423@yahoo.com

    ReplyDelete
  3. Oops, оройтож харсан уучлаарай. Миний санаж байгаагаар Линукс дээр шууд дискнээс уншдаг програм байдаг. dd, fdisk эд нарын мануал хуудсуудыг эргүүлээд үзээрэй :) dd нь уншиж хуулдаг санаж байна.

    ReplyDelete
  4. Ёоо найс, энийг би эртхэн мэдэхгүй яавдаа кк. Зөндөө хугацаа хэмнэж болох байж, баярлалаа хө

    ReplyDelete