fp(1) Free Pascal IDE fp(1)

fp - محیط یکپارچه توسعه (IDE) کامپایلر رایگان پاسکال (FPC)

fp [گزینه‌ها] [فایل‌منبع]

این فایل باینری، محیط یکپارچه توسعه کامپایلر رایگان پاسکال (FPC) است که یک کامپایلر پاسکال پیشرفته و چندمقصده با پشتیبانی از Turbo Pascal و Delphi (7.0) می‌باشد. موتور کامپایلر بر پایه GCC نیست، بلکه کاملاً مستقل است.

کامپایلر از LD(1) استفاده می‌کند و می‌تواند از AS(1) نیز استفاده کند (گزینه -Aas را ببینید)، اما نویسنده باینری شیء اختصاصی خود را نیز دارد.

اهداف اصلی فعلی عبارتند از: Go32V2 (گسترش‌دهنده Dos DJGPP)، Freebsd, Linux, MacOS, MacOSX, MorphOS, Netware, OS/2 و Win32. سایر مقاصد (کامپایلرهای M68K برای Atari و Amiga) یا بر پایه نسخه‌های قدیمی‌تر کامپایلر هستند یا هنوز در دست توسعه قرار دارند.

این صفحه راهنما صرفاً برای ارجاع سریع در نظر گرفته شده است. FPC همراه با یک راهنمای جامع (بیش از ۲۰۰۰ صفحه) ارائه می‌شود که دائماً به‌روزرسانی می‌گردد، در حالی که این صفحه راهنما ممکن است قدیمی باشد.

رابط کاربری IDE به‌گونه‌ای طراحی شده که شبیه به Turbo Pascal باشد. این محیط یک ویرایشگر کاربرپسند و در عین حال نسبتاً قدرتمند، یک سیستم راهنمای آنلاین جامع و یک خطایاب را در اختیار کاربر قرار می‌دهد.

یک سیستم پنجره‌ای در حالت متنی پایه و اساس رابط کاربری است. ماوس پشتیبانی می‌شود، اما بیشتر افراد از صفحه‌کلید استفاده خواهند کرد. کاربر معمولاً چند پنجره ویرایشگر متنی باز می‌کند که در آنها برنامه خود را طراحی کرده و در این مدت می‌تواند به‌طور مرتب با استفاده از کلیدهای میانبر به بررسی و خطایابی بپردازد. سرعت بالای کامپایلر تضمین می‌کند که برنامه‌نویسان بتوانند این کار را مکرراً انجام داده و در نتیجه امکان توسعه سریع کد فراهم شود.

به‌طور پیش‌فرض هیچ فایل راهنمایی ارائه نشده است. کاربر باید مستندات Free Pascal را در قالب HTML بارگیری کرده و آن را با استفاده از منوی Help->Files در IDE نصب کند. فایل‌های .tph متعلق به Turbo Pascal را نیز می‌توان در این منو نصب کرد که می‌تواند برای کدهای منبعی که مستندات را در قالب فایل‌های .tph ارائه می‌دهند مفید باشد.

محیط IDE برای قلم‌های حالت متنی VGA طراحی شده است. این قلم‌ها حالت‌های متنی جذاب‌تری را از نظر بصری نسبت به قلم‌های VT100 که معمولاً در سیستم‌های یونیکس استفاده می‌شوند فراهم می‌کنند و همچنین سازگاری بیشتری دارند، زیرا اکثر سیستم‌های عامل برای حالت‌های متنی خود از مجموعه‌های نویسه VGA استفاده می‌کنند.

هنگام اجرا روی یک ترمینال سازگار با VT100، مقداری شبیه‌سازی رخ خواهد داد. از نظر داخلی، IDE فرض می‌کند روی یک قلم حالت متنی VGA اجرا می‌شود (به احتمال زیاد کدپیج 850)، در حالی که تمام نویسه‌ها (در مورد کدپیج 850) به Latin-1 و نویسه‌های مجموعه نویسه جایگزین VT100 تبدیل می‌شوند.

کنسول لینوکس قابلیت استفاده از قلم‌های VGA را دارد و بنابراین IDE می‌تواند همان‌طور که در نظر گرفته شده بود روی آن نمایش داده شود. حالت کنسول لینوکس از تمامی مجموعه نویسه‌های VGA از طریق دستگاه‌های /dev/vcsa* و بخش عمده آن از طریق دنباله‌های گریز (escape) معمولی پشتیبانی می‌کند. برای جلوگیری از تجربه کاربری نامطلوب، IDE به‌طور نسبتاً تهاجمی از مجموعه‌های نویسه VGA استفاده می‌کند. ابتدا شماره کنسول واقعی را که روی آن اجرا می‌شوید تعیین می‌کند (حتی اگر روی یک pty مانند Midnight Commander اجرا شوید). سپس IDE دستگاه /dev/vcsa* متعلق به آن کنسول را باز می‌کند. در صورت رد دسترسی، IDE ابزار grab_vcsa را فراخوانی می‌کند که یک ابزار با دسترسی setuid root بوده و مجوزهای لازم برای دستگاه vcsa را صادر می‌کند.

در صورتی که دستگاه vcsa در دسترس نباشد، IDE کدهای گریز را برای فعال‌سازی قلم VGA ارسال می‌کند. در این حالت چند نویسه در ۳۲ موقعیت نخست اسکی در دسترس نخواهند بود، اما با توجه به اینکه مجموعه کامل نویسه‌های رسم خط در دسترس هستند، کاربر متوجه تفاوت چندانی نخواهد شد.

دستگاه فریم‌بافر لینوکس و Free Pascal IDE ترکیبی عالی هستند. با fbdev می‌توان از وضوح‌های حالت متنی بالاتر از مقدار معمول 80x25 استفاده کرد که به برنامه‌نویس امکان می‌دهد مقدار بسیار بیشتری از کد را در یک زمان مشاهده کند.

کنسول لینوکس به کاربر امکان می‌دهد تا قلم‌های سفارشی را بارگذاری کند. اگر این کار را انجام دهید، چنین قلمی باید طرح‌بندی به سبک VGA داشته باشد، یعنی کدپیج 437/850/... (توجه داشته باشید که این بدان معنا نیست که سیستم‌فایل شما باید از چنین کدگذاری استفاده کند؛ کنسول لینوکس تبدیل از ISO-8859-1، UTF-8 یا هر فرمت دیگر به قلم را مدیریت می‌کند.) از آنجا که قلم‌های پیش‌فرض دارای طرح‌بندی کدپیج 437 هستند، فقط کاربرانی که با قلم‌ها آزمایش کرده‌اند باید در اینجا مراقبت کنند.

محیط IDE متغیر محیطی CONSOLEFONT_CP را شناسایی می‌کند که در آن می‌توانید کدپیج قلم کنسول را تعیین کنید. مقادیر قابل قبول در حال حاضر "cp437" و "cp850" هستند. اگر این متغیر را تنظیم نکنید، کدپیج 437 فرض خواهد شد. در حال حاضر، اگر بدون تنظیم متغیر از کدپیج 850 استفاده کنید، تأثیر چندانی نخواهد داشت، چرا که نویسه‌هایی که IDE استفاده می‌کند در هر دو کدپیج وجود دارند.

نکته: قلم‌های KOI8-R/KOI8-U تمام نویسه‌های مورد نیاز را دارند، اما نویسه‌های رسم خط در موقعیت‌های درستی قرار ندارند. ممکن است در آینده از این موارد پشتیبانی کنیم، اما در حال حاضر پشتیبانی نمی‌شود.

مدیریت صفحه‌کلید در یونیکس موضوع پیچیده‌ای است زیرا همه ترکیب‌های کلید کدهای گریز تولید نمی‌کنند، شبیه‌سازهای ترمینال مختلف کدهای گریز متفاوتی ایجاد می‌کنند و برخی از ترکیب‌های کلید ممکن است باعث اجرای اقداماتی در مدیر پنجره X11 شوند.

از آنجا که رابط کاربری Free Pascal IDE طوری طراحی شده که شبیه به Turbo Pascal باشد (از جمله دستورات صفحه‌کلید)، ممکن است با یکی از شرایط بالا مواجه شوید. برخی کلیدهای جایگزین اضافه شده‌اند و شاید در آینده موارد بیشتری اضافه شوند.

هنگام اجرا در کنسول لینوکس، صفحه‌کلید برای کارکرد کامل مجدداً برنامه‌ریزی می‌شود.

در اینجا برخی از مشکلات رایج که ممکن است با آنها مواجه شوید و راه‌حل‌های ممکن آورده شده است:

مشکل: انتخاب متن با کلیدهای shift+arrow کار نمی‌کند.

راه‌حل: از ماوس استفاده کنید.

راه‌حل: از "ctrl+k b" برای علامت‌گذاری شروع بلوک، "ctrl+k e" برای علامت‌گذاری پایان بلوک و "ctrl+k h" برای پنهان کردن بلوک استفاده کنید.

مشکل: کلیدهای Cut/Copy/Paste کار نمی‌کنند.

راه‌حل: به مسیر Options->Environment->Keyboard & mouse رفته و کلیدهای Cut/Copy/Paste به سبک مایکروسافت را فعال کنید.

راه‌حل: از نوار منو استفاده کنید.

مشکل: کلید Alt کار نمی‌کند.

راه‌حل: ابتدا کلید Escape و سپس کلید مورد نظر را بدون Alt فشار دهید. توجه داشته باشید که این کار در کنسول لینوکس ممکن نیست، اما کلید Alt در آنجا کار می‌کند.

اگر به هر دلیلی پس از خروج، صفحه‌کلید برنامه‌ریزی‌شده کنسول لینوکس به حالت اولیه بازنگشت (شاید به دلیل کرش کردن IDE)، می‌توانید دستوری مانند "/etc/init.d/kbd start" را اجرا کنید تا صفحه‌کلید به رفتار عادی خود بازگردد.

تیم توسعه Free Pascal (به نشانی http://www.freepascal.org مراجعه کنید)

grab_vcsa fpc fpc.cfg(5) ppdep(1) ppudump(1) ppumove(1) ptop(1) h2pas(1) ld(1) as(1)

14 apr 2006 Free Pascal