نوشته شده توسط نویسندهی مهمان: حسین سُرور گلشنی
این مطلب که در ادامه میتوانید آن را مطالعه کنید توسط دوست عزیزمان حسین آقا نوشتهشده است که به آموزش بهبود ویژگیهای Geany و نزدیک کردن تجربهی کار با Geany به Notepad++ میپردازد. از ایشان به دلیل ارسال این مطلب بسیار سپاسگزاری نموده و از شما دوستان نیز تقاضا داریم که اگر مطالبی اینچنینی دارید که میخواهید منتشر شود آن را برای ما ارسال کنید تا با بهبود و ویرایشهای لازم آن را در سایت منتشر نماییم. اما نکتهای که میخواستم ذکر کنم این بود که مطالب ارسالی حدا لامکان به نگارش رسمی و کتابی نزدیکتر باشد تا نگارش عامیانه.
اگر همچون بنده، علاقمند به برنامهنویسی وب و php باشید، احتمالاً میدانید جایگزینی مناسب که همهی امکانات نرمافزار ++Notepad در ویندوز را در گنو/لینوکس داشته باشد، نیست. البته ویرایشگرهای قدرتمند زیادی بانامها و امکانات مختلف در گنو/لینوکس هستند که حتی امکاناتی دارند که ++Notepad در ویندوز ندارد. اما هیچکدام ظاهر و امکانات جالب و منحصربهفرد ++Notepad مثل هایلایت کردن تگ آغازین و تگ پایان در HTML رو ندارند.
برای حل این مشکل و داشتن یک ویرایشگر پایهای که برای همه کارها مناسب باشد٬ امروز تغییراتی را در ویرایشگر قدرتمند Geany به شما آموزش میدهم که به شما قول خواهم داد پس از انجام این تغییرات ویرایشگر Geany را حتی بهتر از ++Notepad خواهید دانست.
۱. افزودن خط اضافی در آخر هر فایل را در Geany غیرفعال کنید.
متأسفانه ویرایشگر Geany با همه امکاناتش یک بدی دارد که بهصورت پیشفرض هم فعال است آنهم این است که پس از هر بار Save آخر هر فایل یک خط جدید (New Line) اضافه میشود که هم درافزایش حجم بیمورد فایل در پروژههایی که به حجم خروجی خیلی حساس هستیم تأثیر گزار است و هم برای کسانی که نمیدانند باید چطور این مشکل را حل کنند دلیلی برای استفاده از سایر ویرایشگرها ایجاد مینماید.
برای غیرفعال کردن این ویژگی بیمورد از منوی Edit گزینه Preferences که یک آیکون آچار هم کنارش هست را انتخاب کنید سپس در پنجره تنظیمات که باز میشود از گزینههای سمت چپ گزینه Files را انتخاب کنید و در بخش Saving Files تیک گزینهی Ensure new line at file را بردارید تا ازاینپس هنگام Save فایلها یک خط جدید و بیمورد به فایل اضافه نشود.
ویژگی زیر را از این لینک یافتم: با تشکر از کسی که در این لینک پاسخ داده بود.
۲. افزونه Pair Tag Highlighter را برای هایلایت تگهای آغازین و پایان HTML نصب کنید.
همانطور که گفتیم ویژگی هایلایت تگهای آغازین و پایانی که نرمافزار ویندوزی ++NotePad دارد واقعاً ویژگیای است که در موارد بسیاری سودمند است. کاربران لینوکس خارج از کشور در سایت StackOverFlow.com پیشنهاد دادهاند که برای فهمیدن آغاز و پایان یک تگ، کد را بهصورت تودرتو با کلید Tab و نوشتن کامنت در شروع و پایان هر تگ بنویسید که در پروژههای خارجی مثل قالبهای themeforest.net هم از این روش استفاده میشود اما من شخصاً به خاطر کاهش حجم HTML که به مرورگر کاربر باید ارسال شود و به خاطر سرعت اینترنت کشورمان حتی Tab های اضافی را هم با انتخاب همه متن و زدن کلیدهای Shift+Tab حذف میکنم تا حجم فایل را کمتر کنم. در اینگونه مواقع ویژگیهایت لایت کردن تگ آغازین و پایانی واقعاً کاربرد داشته و بدرد خواهد خورد.
برای فعالسازی این ویژگی در ویرایشگر قدرتمند Geany باید افزونه Pair Tag Highlighter را از این لینک https://github.com/vmkononenko/pair-tag-highlighter/archive/master.zip دانلود کنید و سپس با دستور make برای توزیع خود کامپایل نمایید.
در توزیع آرچ با نصب geany-plugins به راحتی این پلاگین هم نصب خواهد شد!!!
چون این افزونه متأسفانه نصاب خودکار نداشته و باید خودتان دستی آن را در توزیع خود نصب نمایید که در زیر آموزش نصب مرحلهبهمرحله آن را مینویسم:
اول این فایل را با دستور زیر دانلود و سپس Extract کنید.
wget -c https://github.com/vmkononenko/pair-tag-highlighter/archive/master.zip
سپس Terminal را بازکنید (در اوبونتو با زدن کلیدهای CTRL + ALT + T میتوانید ترمینال را اجرا کنید) و با دستور cd به پوشه ای که اطلاعات Extract شده در آن هست بروید، برای من در میز کار KDE و مرورگر فایل Dolphin فقط کافی است که در فضای خالی پوشه راست کلیک کنم و از منوی Actions گزینه Open Terminal Here رو انتخاب کنم تا دیگر نیازی به دستور cd نداشته باشم. (میتوان با کلیدهای Alt+ F4 هم این کار را کرد که یک ترمینال توکار را در دلفین اجرا خواهد کرد.)
سپس در ترمینال درحالیکه پوشهی فعلی همان پوشه ای است که فایلهای Extract شده در آن قرار دارند، دستور su را برای فراهم شدن دسترسی root اجرا کرده و سپس دستور زیر را بدون هیچ پارامتری اجرا کنید تا افزونه طبق توزیع و سیستم شما کامپایل شود.
make
اگر سیستم شما دارای چند هسته CPU است make را بهصورت زیر اجرا کنید:
make -j 8
پس از کامپایل در همان پوشه دو فایل pair_tag_highlighter.o و pair_tag_highlighter.so ایجاد خواهند شد. حال در ترمینال با دستور cd به پوشه افزونههای (Plugin) ویرایشگر Geany به آدرس /usr/lib64/geany/ برای توزیعهای ۶۴ بیتی و /usr/lib/geany/ برای توزیعهای ۳۲ بیتی رفته و با دستور cp فایل pair_tag_highlighter.so که در مرحلهی قبل ایجاد شده را به این پوشه کپی کنید.
در آخر اگر نسخهای از ویرایشگر Geany باز است آن را ببندید و دوباره اجرا کنید سپس از منوی Tools گزینه Plugin Manager را انتخاب کنید و تیک گزینهی افزونهی Pair Tag Highlighter را زده و سپس بر روی دکمهی OK کلیک نمایید، تا ویژگی هایلایت کردن تگهای آغازین و پایانی HTML به ویرایشگر Geany اضافه شود.
۳. مفسر php را نصب کنید و بهراحتی در ویرایشگر Geany یک Syntax Checker داشته باشید.
این ویژگی حتی در ++NotePad هم بهصورت کامل و پیشفرض موجود نیست! احتمالاً شما هم در خطایابی کدهای php مشکلدارید و یا از IDE های سنگین با امکان خطایاب و یا از Syntax Cheker های آنلاین استفاده میکنید، اما اگر دوست دارید بهراحتی یک کلیک! صحیح بودن Syntax کد php خودتان را متوجه شوید و خطا رو بیابید، فقط کافی است بستهی php را در توزیع گنو/لینوکس خودتان با دستور برای توزیعهای تحت Debian نصب کنید:
sudo apt-get install php
یا با استفاده از دستور زیر PHP را در redhat، Fedora و یا centOS نصب کنید:
sudo yum install php
ازاینپس برای بررسی اخطارهای کد php خود در ویرایشگر Geany بدون هیچ افزونه ای از منوی Build گزینه Compile را انتخاب کنید و یا فقط کلید F8 را از صفحهکلید فشار دهید، تا کد شما توسط بسته php نصبشده در سیستم، تفسیر شده و اخطارهایش در ویرایشگر Geany به نمایش دربیاید و بهراحتی بتوانید کدهای خود را Debug نمایید.
باوجود مراحل ذکرشده در بالا، حال به نظر شما با انجام این سه نکته، ویرایشگر Geany حتی بهتر از ویرایشگر ++Notepad متنباز که منحصر به ویندوز است، نیست؟ به نظر من که امکانات نرمافزار Geany بسیار عالی و مکفی بوده و فقط تنها مشکلی که در ویرایشگر Geany و هم در ویرایشگر ++Notepad با آن روبهرو بودهام، این است که با انتخاب (Select) متون فارسی کمی دچار مشکل هستند.اگر این مشکل در ویرایشگرها حل شود که منحصر به این ویرایشگر هم نیست، دیگر مشکلی در این برنامه نمیتوان یافت یا حداقل ازنظر من دیگر مشکلی وجود ندارد.
بااینحال اگر دوستان روشی برای رفع این مشکل و یا مشکلات Geany و نواقصی که به ذهنشان میرسد دارند لطفاً آنان را با ما در میان بگزارند تا به آنان پرداخته شود.
پی نوشت توصیهی خودم: همچنین شما دوستان میتوانید علاوه بر توجه به مطلب دوست عزیزمان از نرمافزار Notepadqq که در این مطلب به آن پرداخته ام نیز استفاده کنید.
10 دیدگاه برای این نوشته:
- مصطفی:
12 آبا 1393 شما طوری نوشتین که انگار توی لینوکس ویرایشگر خوب نیست و کاربراش برای ویرایشگر خوب معطل موندن! با وجود vi اصلا نیازی به ویرایشگر دیگهای نمیمونه!پینوشت: به نظرم نوتپدپلاسپلاس حتی از ویرایشگر دشمن، یعنی ایمکس هم به دردنخورتره! - حامد:
12 آبا 1393 سلام. ممنون
ولی نصبش کردم. به لیست Pluginها هم اضافه شده. ولی با اینکه فعالش کردم، باز هم تگ ها رو هایلایت نمیکنه!!
چرا!! - rooz:
12 آبا 1393 سلام خیلی ممنون از آموزش خوبی که گذاشتین. موقع نصب پلاگین وقتی اکسترکتش که میکنم و دستور make رو میزنم یه سری پیغام ها نشون میده که من اصلا سر در نمیارم .
root@rooz:~/pair-tag-highlighter-master$ sudo make
gcc -c src/pair_tag_highlighter.c -fPIC -DGTK -pthread -I/usr/include/geany -I/usr/include/geany/tagmanager -I/usr/include/geany/scintilla -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/harfbuzz
src/pair_tag_highlighter.c: In function ‘findMatchingOpeningTag’:
src/pair_tag_highlighter.c:161:9: warning: passing argument 4 of ‘findBracket’ makes integer from pointer without a cast [enabled by default]
gint matchingOpeningBracket = findBracket(pos, lineStart, ”, NULL, FALSE);
^
src/pair_tag_highlighter.c:42:6: note: expected ‘gchar’ but argument is of type ‘void *’
gint findBracket(gint position, gint endOfSearchPos, gchar searchedBracket,
^
src/pair_tag_highlighter.c: In function ‘findMatchingClosingTag’:
src/pair_tag_highlighter.c:214:9: warning: passing argument 4 of ‘findBracket’ makes integer from pointer without a cast [enabled by default]
gint matchingOpeningBracket = findBracket(pos, endOfDocument, ”, NULL, TRUE);
^
src/pair_tag_highlighter.c:42:6: note: expected ‘gchar’ but argument is of type ‘void *’
gint findBracket(gint position, gint endOfSearchPos, gchar searchedBracket,
^
gcc pair_tag_highlighter.o -o pair_tag_highlighter.so -shared -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype
root@rooz:~/pair-tag-highlighter-master$
اولش که به پکیج gcc گیر داده بود که من نصبش کردم بعدش هم که این پیغام ها رو نشون میداد.
ممنون میشم راهنمایی بفرمایید.
باتشکر - احسان ترک:
12 آبا 1393 باز برتری notepad++ نسبت به Xcode کزایی اینه که متن بازه. نه emacs خیلی بهتره :) - سامان:
12 آبا 1393 برای حل مشکل نوشتن متون فارسی از فارسی نویس فکر کنم میشه استفاده کرد ? - arvant:
12 آبا 1393 جدا اینا رو با xcode مقایسه میکنید؟ - مهمان:
13 آبا 1393 والا!
ولی به نظرم جایگزین لایق Notepad++ فقط komodoEdit هستش. - حسین:
13 آبا 1393 سلام
فقط رو حالت کد HTML یا PHP تگ ها رو هایلایت میکنه در سایر حالت ها انجام نمیده. - حسین:
13 آبا 1393 شما با ویرایشگر vi کد نویسی زبان هایی مثل php هم انجام میدید؟ بعد vi که Syntax Highlighter هم نداره چه برسه به Syntax Checker چطوری حتی یه اشتباه هم نمیکنید؟ مگه ممکنه؟ - مصطفی:
13 آبا 1393 این چه حرفیه! معلومه که داره! امکاناتی که vi داره رو من توی هیچ ویرایشگری ندیدم! صرفا بحث ویرایشگر بودن مطرح نیست، vi یه مدل رو برای ویرایش متن ارائه داده، چیزی مثل یه زبان برای ویرایش کد! که این مدل باعث میشه که بازده کد نویسی خیلی بالا بره.
این هم یه اسکرینشات
http://goo.gl/TlWgKs