GLOBAL(1) General Commands Manual GLOBAL(1) نام (NAME) global - چاپ مکان نمادهای مشخص‌شده خلاصه دستور (SYNOPSIS) global [-adEFGilMnNqrstTvx][-S dir][-e] pattern global -c[dFiIMoOPqrsTv] prefix global -f[adlnqrstvx][-L file-list][-S dir] files global -g[aEGilMnoOqtvVx][-L file-list][-S dir][-e] pattern [files] global -I[ailMnqtvx][-S dir][-e] pattern global -P[aEGilMnoOqtvVx][-S dir][-e] pattern global -p[qrv] global -u[qv] توضیحات (DESCRIPTION) دستور Global مکان نمادهای داده‌شده را در فایل‌های مبدأ C،‏ Yacc،‏ Java،‏ PHP و اسمبلی پیدا کرده و نام مسیر، شماره خط و محتوای خطِ مربوط به آن مکان‌ها را چاپ می‌کند. Global نه تنها تعاریف، بلکه مراجع و سایر نمادها را نیز می‌تواند بیابد. Global می‌تواند یک درخت مبدأ (یعنی دایرکتوری‌ای که شامل زیردایرکتوری‌ها و فایل‌های مبدأ است) را به عنوان یک پروژه در نظر بگیرد. پیش از به‌کارگیری این دستور، باید gtags(1) را در دایرکتوری ریشه پروژه‌ای که قصد بررسی آن را دارید اجرا کنید تا فایل‌های برچسب ایجاد شوند. سپس می‌توانید از دستور global در هر کجای پروژه استفاده کنید. نیازی نیست مشخص کنید فایل برچسب کجاست؛ در عوض، global خودش مکان آن را پیدا می‌کند. شما می‌توانید یک عبارت باقاعده برای pattern مشخص کنید. Global دو نگارش مختلف از نحو عبارات باقاعده را درک می‌کند: پایه (basic) و تعمیم‌یافته (extended که پیش‌فرض است). دستورها (COMMANDS) دستورهای زیر در دسترس هستند: <بدون دستور> pattern عدم تعیین دستور به معنای دستور جستجوی برچسب است. برچسب‌هایی را که با pattern مطابقت دارند چاپ می‌کند. به‌طور پیش‌فرض، برچسب‌های تعریف چاپ می‌شوند. -c, --completion[=limit] [prefix] چاپ نمادهایی که با prefix آغاز می‌شوند. اگر prefix داده نشود، همه نمادها را چاپ می‌کند. اگر limit داده شود، حداکثر تا تعداد خطوط مشخص‌شده در limit چاپ می‌کند. -f, --file files چاپ همه برچسب‌های موجود در files. این دستور مستلزم گزینه -x است. -g, --grep pattern [files] چاپ همه خطوطی که با pattern مطابقت دارند. اگر files مشخص شده باشد، این دستور در آن فایل‌ها جستجو می‌کند. --help چاپ پیام راهنما. -I, --idutils pattern چاپ تمام خطوطی که با pattern مطابقت دارند. این تابع از idutils(1) به عنوان موتور جستجو استفاده می‌کند. برای استفاده از این دستور، باید idutils(1) را روی سیستم خود نصب کرده و gtags(1) را با گزینه -I اجرا کنید. -P, --path [pattern] چاپ نام مسیرهایی که با pattern مطابقت دارند. اگر الگویی داده نشود، تمام مسیرهای موجود در پروژه را چاپ می‌کند. -p, --print-dbpath چاپ مکان ´GTAGS´. --print name چاپ مکان name، که می‌تواند یکی از این موارد باشد: ´root´، ´dbpath´ یا ´conf´. ´root´ به معنی دایرکتوری ریشه پروژه است. ´dbpath´ به معنی دایرکتوری‌ای است که پایگاه‌های داده برچسب در آن قرار دارند. ´conf´ به معنی فایل پیکربندی است. -u, --update به‌روزرسانی افزایشی فایل‌های برچسب. این دستور به صورت درونی gtags(1) را فرامی‌خواند. برخلاف gtags(1)، می‌توانید این دستور را در هر کجای پروژه اجرا کنید. --version نمایش شماره نگارش. گزینه‌ها (OPTIONS) گزینه‌های زیر در دسترس هستند: -a, --absolute چاپ نام مسیرهای مطلق. به‌طور پیش‌فرض، نام مسیرهای نسبی چاپ می‌شوند. --color when استفاده از رنگ برای برجسته‌سازی الگو در خط؛ when می‌تواند یکی از این موارد باشد: never، always یا auto (پیش‌فرض). رنگ پیش‌فرض، متن قرمز پررنگ روی پس‌زمینه فعلی است؛ متغیر محیطی GREP_COLORS (در حال حاضر تنها mt و ms مؤثر هستند) یا GREP_COLOR آن را تعیین می‌کند. این گزینه برای دستورهای زیر مؤثر است: <بدون دستور>، -f، -g، -I، -P. -C, --directory dir تغییر دایرکتوری پیش از انجام تمام کارها از جمله تحلیل پارامترها. -d, --definition چاپ مکان‌های تعاریف. -e, --regexp pattern استفاده از pattern به عنوان الگو؛ برای محافظت از الگوهایی که با ´-´ آغاز می‌شوند کاربرد دارد. -E, --extended-regexp تفسیر pattern به عنوان یک عبارت باقاعده تعمیم‌یافته (extended). این حالت پیش‌فرض است. --encode-path chars تبدیل نویسه‌های مسیرِ موجود در chars به نماد ´%´، همراه با نمایش شانزده‌شانزدهی دو رقمی آن نویسه. فاصله (blank) به ´%20´ تبدیل خواهد شد. -F, --first-match پایان دادن به جستجو بدون پیمایش تمام فایل‌های برچسب فهرست‌شده در GTAGSLIBPATH هنگامی که برچسب‌ها در یک فایل برچسب پیدا شوند. این حالت پیش‌فرض است. --from-here context تعیین نوع برچسب بر اساس context. نحو آن باید به صورت ´lineno:path´ باشد. اگر سیاق (context) تعریفی از الگو باشد آنگاه از -r استفاده می‌شود، در غیر این صورت اگر حداقل یک تعریف از الگو وجود داشته باشد از -d استفاده می‌شود، وگرنه از -s استفاده خواهد شد. اگر این گزینه مشخص شود، گزینه‌های -d، -r و -s روی خط فرمان نادیده گرفته می‌شوند. استفاده از عبارت باقاعده برای pattern مجاز نیست. این گزینه برای استفاده در محیط‌های تعاملی مانند ویرایشگرها و محیط‌های یکپارچه توسعه نرم‌افزار (IDE) در نظر گرفته شده است. -G, --basic-regexp تفسیر pattern به عنوان یک عبارت باقاعده پایه (basic). پیش‌فرض، عبارت باقاعده تعمیم‌یافته است. --gtagsconf file تنظیم متغیر محیطی GTAGSCONF روی file. --gtagslabel label تنظیم متغیر محیطی GTAGSLABEL روی label. -i, --ignore-case نادیده گرفتن تمایز حروف کوچک و بزرگ در الگو. -L, --file-list file دریافت فایل‌ها از file علاوه بر آرگومان‌ها. آرگومان file می‌تواند روی '-' تنظیم شود تا فهرستی از فایل‌ها را از ورودی استاندارد بپذیرد. نام فایل‌ها باید با خط جدید از یکدیگر جدا شوند. -l, --local تنها چاپ برچسب‌هایی که زیر دایرکتوری فعلی قرار دارند. --literal انجام جستجوی دقیق نویسه‌ای (literal) به جای جستجوی عبارت باقاعده. این گزینه با دستور جستجوی برچسب، دستور -g، دستور -P و دستور -I کار می‌کند. -M, --match-case جستجو به بزرگی و کوچکی حروف حساس باشد. این حالت پیش‌فرض است. --match-part part مشخص کردن چگونگی تطابق تکمیل نام مسیر، که در آن part یکی از این موارد است: ´first´، ´last´ یا ´all´ (پیش‌فرض). این گزینه تنها با دستور -c در ترکیب با -P معتبر است. -n, --nofilter غیرفعال کردن فیلتر مرتب‌سازی و فیلتر تبدیل مسیر. -N, --nearness[=start] استفاده از روش مرتب‌سازی بر اساس نزدیکی (مرتب‌سازی بر مبنای نزدیک‌ترین از start) برای خروجی. به‌طور پیش‌فرض، از روش مرتب‌سازی الفبایی استفاده می‌شود. این گزینه برای دستور جستجوی برچسب، دستور -P و دستور -g مؤثر است. به عنوان یک استثنا، دستور -g زمانی که فایل‌ها با آرگومان مشخص شده باشند این گزینه را نادیده می‌گیرد. میزان نزدیکی بر اساس این تعریف می‌شود که برای رسیدن به هدف باید از چند دایرکتوری والد بالا رفت. نتیجه مرتب‌سازی بر اساس نزدیکی، الحاق موارد زیر ([0]-[n]) به همین ترتیب است. مقدار پیش‌فرض start دایرکتوری فعلی است. [0] اگر شروع یک فایل باشد، خروجی جستجوی محلی در آن فایل. [1] خروجی جستجوی محلی در دایرکتوری شروع به جز [0]. [2] خروجی جستجوی محلی در دایرکتوری والد به جز [0]-[1]. [3] خروجی جستجوی محلی در دایرکتوری والدِ والد به جز [0]-[2]. ... (تکرار تا دایرکتوری ریشه پروژه) [n] خروجی جستجوی محلی در دایرکتوری ریشه پروژه به جز [0]-[n-1]. در هر دایرکتوری، آن‌ها بر اساس ترتیب الفبایی مرتب می‌شوند. -O, --only-other تنها در نظر گرفتن فایل‌های متنی غیر از کد مبدأ، مانند ´README´. این گزینه تنها با دستور -g یا -P معتبر است. این گزینه بر گزینه -o اولویت دارد..TP -o, --other علاوه بر فایل‌های کد مبدأ، فایل‌های متنی دیگر (مانند ´README´) را نیز پردازش می‌کند. این گزینه تنها با دستورهای -g یا -P معتبر است. --path-style format نام‌های مسیر را با استفاده از format چاپ می‌کند که می‌تواند یکی از موارد زیر باشد: ´relative´، ´absolute´، ´shorter´، ´abslib´ یا ´through´. ´relative´ به معنای مسیر نسبی است. ´absolute´ به معنای مسیر مطلق است. ´shorter´ به معنای مسیر کوتاه‌تر بین مسیر نسبی و مطلق است. ´abslib´ به معنای مسیر مطلق برای کتابخانه‌ها (GTAGSLIBPATH) و مسیر نسبی برای باقی موارد است. ´through´ به معنای مسیر نسبی از دایرکتوری ریشه پروژه است (قالب داخلی GPATH). وقتی از این شیوه استفاده شود، GTAGSLIBPATH نادیده گرفته می‌شود. پیش‌فرض ´relative´ است. گزینه --path-style اولویت بالاتری نسبت به گزینه -a دارد. --print0 هر رکورد را به جای خط جدید، با یک نویسه نال (null) در انتها چاپ می‌کند. -q, --quiet حالت بی‌صدا. -r, --reference, --rootdir برچسب‌های مرجع را چاپ می‌کند. مرجع به معنای ارجاع به نمادی است که دارای تعریف باشد. همراه با گزینه -p، دایرکتوری ریشه پروژه را چاپ می‌کند. --result format خروجی را با استفاده از format چاپ می‌کند که می‌تواند یکی از موارد زیر باشد: ´path´ (پیش‌فرض)، ´ctags´، ´ctags-x´، ´grep´ یا ´cscope´. گزینه‌های --result=ctags و --result=ctags-x به ترتیب معادل گزینه‌های -t و -x هستند. گزینه --result اولویت بالاتری نسبت به گزینه‌های -t و -x دارد. --single-update file فایل‌های برچسب را با استفاده از gtags(1) همراه با گزینه --single- update به‌روزرسانی می‌کند. فرض بر این است که file اضافه، به‌روزرسانی یا حذف شده است و هیچ تغییری در فایل‌های دیگر وجود ندارد. این گزینه مستلزم گزینه -u است. -s, --symbol برچسب‌های نمادهای دیگر را چاپ می‌کند. نماد دیگر به معنای ارجاع به نمادی است که هیچ تعریفی ندارد. -S, --scope dir فقط برچسب‌هایی را که زیر دایرکتوری dir قرار دارند چاپ می‌کند. مشابه گزینه -l است، اما نیازی به تغییر دایرکتوری ندارید. -T, --through تمام فایل‌های برچسب فهرست‌شده در GTAGSLIBPATH را بررسی می‌کند. به‌طور پیش‌فرض، جستجو با یافتن اولین برچسب متوقف می‌شود. در صورت مشخص شدن هر یک از گزینه‌های -s، -r یا -l، این گزینه نادیده گرفته می‌شود. -t, --tags استفاده از قالب استاندارد ctags. -V, --invert-match منطق تطابق را معکوس می‌کند تا خطوط غیرمنطبق انتخاب شوند. این گزینه تنها با دستورهای -g یا -P معتبر است. -v, --verbose حالت پرگو (مشروح). -x, --cxref استفاده از قالب استاندارد cxref در ctags (با -x). مثال‌ها (EXAMPLES) $ ls -F Makefile src/ lib/ $ gtags $ ls G* GPATH GRTAGS GTAGS $ global main src/main.c $ (cd src; global main) main.c $ global -x main main 10 src/main.c main (argc, argv) { $ global -f src/main.c main 10 src/main.c main (argc, argv) { func1 55 src/main.c func1() { func2 72 src/main.c func2() { func3 120 src/main.c func3() { $ global -x '^[sg]et' set_num 20 lib/util.c set_num(values) { get_num 30 lib/util.c get_num() { $ global -rx set_num set_num 113 src/op.c set_num(32); set_num 225 src/opop.c if (set_num(0) > 0) { $ global strlen $ (cd /usr/src/sys; gtags) $ export GTAGSLIBPATH=/usr/src/sys $ global -a strlen /usr/src/sys/libkern/strlen.c $ (cd /usr/src/lib; gtags) $ GTAGSLIBPATH=/usr/src/lib:/usr/src/sys $ global -a strlen /usr/src/lib/libc/string/strlen.c فایل‌ها (FILES) ´GTAGS´ فایل برچسب برای تعاریف. ´GRTAGS´ فایل برچسب برای ارجاعات. ´GPATH´ فایل برچسب برای فایل‌های منبع. ´GTAGSROOT´ اگر متغیر محیطی GTAGSROOT تنظیم نشده باشد و فایل ´GTAGSROOT´ در همان دایرکتوری حاوی ´GTAGS´ وجود داشته باشد، آن‌گاه global مقدار GTAGSROOT را برابر با محتوای این فایل قرار می‌دهد. ´gtags.conf´, ´$HOME/.globalrc´ داده‌های پیکربندی برای GNU Global. gtags.conf(5) را ببینید..SH "محیط (ENVIRONMENT)" متغیرهای محیطی زیر بر اجرای global تأثیر می‌گذارند: GREP_COLOR رنگی که برای --color استفاده می‌شود؛ GREP_COLORS اولویت دارد. GREP_COLORS رنگ (mt یا ms) برای استفاده با --color؛ به grep(1) مراجعه کنید. GTAGSBLANKENCODE اگر این متغیر مقداردهی شود، گزینهٔ --encode-path=" " تعیین می‌شود. GTAGSCACHE اندازهٔ حافظهٔ موقت (کَش) B-tree. مقدار پیش‌فرض 50000000 (بایت) است. GTAGSCONF فایل پیکربندی. GTAGSDBPATH دایرکتوری محل قرارگیری فایل‌های برچسب. این مقدار در صورتی که GTAGSROOT تعریف نشده باشد نادیده گرفته می‌شود. استفاده از این متغیر توصیه نمی‌شود. GTAGSFORCECPP اگر این متغیر مقداردهی شود، با هر فایلی که پسوند آن ´.h´ باشد مانند یک فایل منبع C++ رفتار می‌شود. GTAGSLABEL برچسب پیکربندی. مقدار پیش‌فرض default است. GTAGSLIBPATH اگر این متغیر مقداردهی شود، به عنوان مسیر جستجو برای توابع کتابخانه‌ای استفاده می‌شود. اگر نماد داده‌شده در پروژهٔ کنونی پیدا نشود، global در این مسیرها نیز جستجو می‌کند. از آنجا که در بازیابی تنها ´GTAGS´ هدف قرار می‌گیرد، هنگام تعیین -r یا -s این متغیر نادیده گرفته می‌شود. GTAGSLOGGING اگر این متغیر مقداردهی شود، ´$GTAGSLOGGING´ به عنوان مسیر فایل لاگ استفاده می‌شود. مقدار پیش‌فرضی وجود ندارد. GTAGSROOT دایرکتوری ریشهٔ پروژه. معمولاً از طریق وجود فایل ´GTAGS´ شناسایی می‌شود. استفاده از این متغیر توصیه نمی‌شود. GTAGSTHROUGH اگر این متغیر مقداردهی شود، گزینهٔ -T تعیین می‌گردد. GTAGSOBJDIR, MAKEOBJDIR اگر هر یک از این دو متغیر مقداردهی شود، به عنوان نام objdir به سبک BSD استفاده می‌شود. اولویت با متغیر اول است. مقدار پیش‌فرض ´obj´ است. GTAGSOBJDIRPREFIX, MAKEOBJDIRPREFIX اگر هر یک از این دو متغیر مقداردهی شود، به عنوان پیشوند objdir به سبک BSD استفاده می‌شود. اولویت با متغیر اول است. مقدار پیش‌فرض ´/usr/obj´ است. پیکربندی (CONFIGURATION) متغیرهای پیکربندی زیر بر اجرای global تأثیر می‌گذارند: icase_path (boolean) نادیده گرفتن تمایز حروف کوچک و بزرگ در pattern. خطاها (DIAGNOSTICS) در صورت بروز خطا، global با مقداری غیر از ۰ خارج می‌شود، و در غیر این صورت با ۰. همچنین ببینید (SEE ALSO) gtags(1), htags(1), less(1), gtags.conf(5). سامانه برچسب‌گذاری کد منبع GNU Global (http://www.gnu.org/software/global). نویسندگان (AUTHORS) Shigio YAMAGUCHI، Hideki IWAMOTO و دیگران. تاریخچه (HISTORY) دستور global نخستین بار در FreeBSD 2.2.2 پدیدار شد. GNU Project May 2015 GLOBAL(1)