Forwarded from LinFAQ (Reza)
#داستان_های_FOSS
دستهبندی: #داستان #آموزشی
پارت 3.1 :
راجب آشناییم با (نئو)ویم (پارت 3: بازنویسی کانفیگم و فیچر های جدید نئوویم)
موقع نوشتن این متن استفاده کردن یا نکردن از پلاگین فرق خاصی روی سرعت ایجاد نمیکنه و پلاگین های جدید امکانات زیادی دارن، تنها دلیلی که هنوز سراغ پلاگین ها نرفتم این هست که
1- کانفیگ کردن نئوویم بدون پلاگین نسبتا متفاوته
2- حتی بدون پلاگین هم میشه امکانات زیادی در حد debugger و completion و ظاهر بهتر statusline و... رو به نئوویم اضافه کرد):
خب تو پارت قبل (2) به اونجایی رسیدیم که کانفیگم رو فرستادم گیت هاب و شروع کردم به بازنویسی کانفیگ نئوویم اما بدون پلاگین، اول فقط در حد ست کردن line number و tabstop و save cursor position بود، بعد کم کم شروع کردم به اضافه کردن فیچر هایی مثل تغییر رنگ استیتوس بار موقع سوییچ بین نرمال مد و اینزرت مد و آشنایی با x mode
بعد از اون هم شروع کردم به تغییر یه سری highlight ها و تحقیق راجب نحوه کانفیگ statusline
که در نتیجه یکم کانفیگش کردم و یه سری از مد ها رو داخل استیتوس لاین نمایش میداد.
تقریبا همین موقع ها init.lua و builtin lsp اومده بودن، اما بخاطر عدم آشنایی کافی با نحوه کانفیگ نئوویم با لوا و نبود داکیومنت های زیاد راجبش و تازه بودن builtin lsp
سراغشون نرفتم، جدای از اون مهم ترین بخش کانفیگم که استیتوس لاین بود چون کل مد ها (مخصوصا term) رو نمایش نمیداد، اگه به اون مد ها سوییچ میکردم کلا ارور میداد و میرفت استیتوس بار دیفالت، و دیگه حال و حوصله درست کردن و کامل کردن امکانات استیتوس بار
رو نداشتم.
کلا کانفیگ نصفه رو گذاشتم کنار، بعد یه مدت که یوتیوبر ها شروع کردن به بازنویسی کانفیگشون به لوا، با دیدن کانفیگ های نمونه یکم از کانفیگ با لوا سر در آوردم و بعد از چند وقت یه کانفیگ نئوویم از صفر با init.lua ردیف کردم، البته خیلی ساده و در حد چند تا set و keybind بود، به همون قانع شدم چون برام کافی بود و دیگه ادامش ندادم.
اول تابستون یه گندی زدم و بعدش توفیق اجباری شد و سوییچ کردم به آرچ، کانفیگ قبلیم رو برگردوندم و برای این که یکم فعالیت علمیم رو بیشتر کنم شروع کردم به کانفیگ دوباره ابزار ها و همینطور گفتن نکاتی که هر روز بدست میارم داخل لینچت
آخرین تغییری که تا موقع نوشتن این متن داخل کانفیگم ایجاد شده بود اضافه کردن دوباره restore-cursor اما این بار داخل init.lua بود که یه نکته هم راجبش نوشتم، اما به 5 روز نکشید که پدرم از دنیا رفت
از خونه خارج شدیم تا حال و هوامون عوض بشه و خب دیگه نرسیدم کانفیگ کنم، اما برای این که بتونم توی لحظه زندگی کنم بعد از چند روز شروع کردم به خوندن مقاله های مختلف و...
فهمیدم امکانات عجیب و زیاد دیگه ای رو نئوویم بدون پلاگین داره که ازش خبر نداشتم، مثل دیباگر که از gdb استفاده میکنه، ctags که برای go to definition و... مناسبه، کامند make که برای کامپایل و سوییچ بین ارور های موقع کامپایل از داخل (نئو)ویم مناسبه و...
همینطور بیشتر راجب کانفیگ استیتوس بار با لوا تحقیق کردم
دستهبندی: #داستان #آموزشی
پارت 3.1 :
راجب آشناییم با (نئو)ویم (پارت 3: بازنویسی کانفیگم و فیچر های جدید نئوویم)
موقع نوشتن این متن استفاده کردن یا نکردن از پلاگین فرق خاصی روی سرعت ایجاد نمیکنه و پلاگین های جدید امکانات زیادی دارن، تنها دلیلی که هنوز سراغ پلاگین ها نرفتم این هست که
1- کانفیگ کردن نئوویم بدون پلاگین نسبتا متفاوته
2- حتی بدون پلاگین هم میشه امکانات زیادی در حد debugger و completion و ظاهر بهتر statusline و... رو به نئوویم اضافه کرد):
خب تو پارت قبل (2) به اونجایی رسیدیم که کانفیگم رو فرستادم گیت هاب و شروع کردم به بازنویسی کانفیگ نئوویم اما بدون پلاگین، اول فقط در حد ست کردن line number و tabstop و save cursor position بود، بعد کم کم شروع کردم به اضافه کردن فیچر هایی مثل تغییر رنگ استیتوس بار موقع سوییچ بین نرمال مد و اینزرت مد و آشنایی با x mode
(داخل اینزرت مد ctrl x رو بزنید میبینیدش)،
بعد از اون هم شروع کردم به تغییر یه سری highlight ها و تحقیق راجب نحوه کانفیگ statusline
(چند تا مقاله راجبش خوندم)
که در نتیجه یکم کانفیگش کردم و یه سری از مد ها رو داخل استیتوس لاین نمایش میداد.
تقریبا همین موقع ها init.lua و builtin lsp اومده بودن، اما بخاطر عدم آشنایی کافی با نحوه کانفیگ نئوویم با لوا و نبود داکیومنت های زیاد راجبش و تازه بودن builtin lsp
(البته که هنوزم سراغ lsp نرفتم)
سراغشون نرفتم، جدای از اون مهم ترین بخش کانفیگم که استیتوس لاین بود چون کل مد ها (مخصوصا term) رو نمایش نمیداد، اگه به اون مد ها سوییچ میکردم کلا ارور میداد و میرفت استیتوس بار دیفالت، و دیگه حال و حوصله درست کردن و کامل کردن امکانات استیتوس بار
(صرفا mode و path و file type رو نمایش میداد)
رو نداشتم.
کلا کانفیگ نصفه رو گذاشتم کنار، بعد یه مدت که یوتیوبر ها شروع کردن به بازنویسی کانفیگشون به لوا، با دیدن کانفیگ های نمونه یکم از کانفیگ با لوا سر در آوردم و بعد از چند وقت یه کانفیگ نئوویم از صفر با init.lua ردیف کردم، البته خیلی ساده و در حد چند تا set و keybind بود، به همون قانع شدم چون برام کافی بود و دیگه ادامش ندادم.
اول تابستون یه گندی زدم و بعدش توفیق اجباری شد و سوییچ کردم به آرچ، کانفیگ قبلیم رو برگردوندم و برای این که یکم فعالیت علمیم رو بیشتر کنم شروع کردم به کانفیگ دوباره ابزار ها و همینطور گفتن نکاتی که هر روز بدست میارم داخل لینچت
(که #روزی_یک_نکته با دلاتو ایجاد شدن)،
آخرین تغییری که تا موقع نوشتن این متن داخل کانفیگم ایجاد شده بود اضافه کردن دوباره restore-cursor اما این بار داخل init.lua بود که یه نکته هم راجبش نوشتم، اما به 5 روز نکشید که پدرم از دنیا رفت
(تقریبا همین موقع ها، دقیق یادم نیست اما یکی 2 روز قبل یا بعد این ماجرا linux dabbler ویدئویی با اسم pluginless neovim رو داخل یوتیوب قرار داد)،
از خونه خارج شدیم تا حال و هوامون عوض بشه و خب دیگه نرسیدم کانفیگ کنم، اما برای این که بتونم توی لحظه زندگی کنم بعد از چند روز شروع کردم به خوندن مقاله های مختلف و...
فهمیدم امکانات عجیب و زیاد دیگه ای رو نئوویم بدون پلاگین داره که ازش خبر نداشتم، مثل دیباگر که از gdb استفاده میکنه، ctags که برای go to definition و... مناسبه، کامند make که برای کامپایل و سوییچ بین ارور های موقع کامپایل از داخل (نئو)ویم مناسبه و...
(2 مورد آخر رو از ویدئو How to Do 90% of What Plugins Do (With Just Vim) متوجه شدم)،
همینطور بیشتر راجب کانفیگ استیتوس بار با لوا تحقیق کردم
(دقیق تر بگم اون ویدئو linux dabbler بیشتر توضیح رو داد)
❤2👍1
Forwarded from LinFAQ (Reza)
ادامه پارت قبل
پارت 3.2 :
اما خب هنوز پشت سیستم نرفتم که تستشون کنم تا بتونم نکته ای راجبشون بگم، رسیدیم زمان نوشتن این متن.
این که کسی به ویم سوییچ کنه یا نه، با پلاگین یا بدون پلاگین کانفیگش کنه و... انتخاب خودشه، اینطوری نیست که بتونم بگم "باید همه از ویم یا ایمکس یا... استفاده کنن"، بنظرم هم این که برای یکی دلیل بیارم که چرا باید به (نئو)ویم یا... سوییچ کنه، خیلی کار موثر یا مفید یا جالبی نیست، چون
1- انگار دارم نگاه و دلایل خودم رو که ممکنه برای اون شخص صدق نکنه استفاده میکنم و
2- در نهایت ویم ویرایشگر متن نسبتا متفاوت تری هست و اگه شخص انگیزه ای برای یادگیری و کانفیگش نداشته باشه، با مسائلی که براش پیش میاد (تنها جمله ای که مناسب این موقعیت پیدا کردم:) فقط روی اعصاب خودش و بقیه میره.
پس به جای آوردن دلیل، تجربه خودم و دلیل سوییچم بهش و این که چه پروسه ای رو برای یادگیری و کانفیگ ابزار طی کردم، بهترین توضیحیه که میتونم برای
1- شخص خودش بتونه تشخیص بده که (نئو)ویم مناسبش هست یا نه و 2- ارزش وقتش رو داره یا اصلا چقدر زمان میگیره، ارائه بدم.
در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.
پارت 3.2 :
اما خب هنوز پشت سیستم نرفتم که تستشون کنم تا بتونم نکته ای راجبشون بگم، رسیدیم زمان نوشتن این متن.
این که کسی به ویم سوییچ کنه یا نه، با پلاگین یا بدون پلاگین کانفیگش کنه و... انتخاب خودشه، اینطوری نیست که بتونم بگم "باید همه از ویم یا ایمکس یا... استفاده کنن"، بنظرم هم این که برای یکی دلیل بیارم که چرا باید به (نئو)ویم یا... سوییچ کنه، خیلی کار موثر یا مفید یا جالبی نیست، چون
1- انگار دارم نگاه و دلایل خودم رو که ممکنه برای اون شخص صدق نکنه استفاده میکنم و
2- در نهایت ویم ویرایشگر متن نسبتا متفاوت تری هست و اگه شخص انگیزه ای برای یادگیری و کانفیگش نداشته باشه، با مسائلی که براش پیش میاد (تنها جمله ای که مناسب این موقعیت پیدا کردم:) فقط روی اعصاب خودش و بقیه میره.
پس به جای آوردن دلیل، تجربه خودم و دلیل سوییچم بهش و این که چه پروسه ای رو برای یادگیری و کانفیگ ابزار طی کردم، بهترین توضیحیه که میتونم برای
1- شخص خودش بتونه تشخیص بده که (نئو)ویم مناسبش هست یا نه و 2- ارزش وقتش رو داره یا اصلا چقدر زمان میگیره، ارائه بدم.
در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.
❤1
Forwarded from شیرازلینوکس | shirazlinux
🔰 فراخوان طراحی استند بیوگرافی و سنگ مزار مرحوم «صابر راستی کردار»
با توجه به فعالیت ارزشمند آن مرحوم برای جامعه نرمافزار ایران،
به پاس تقدیر از دستاوردهای بزرگ ایشان و معرفی هرچه بیشتر این هنرمند بزرگ به مردم شهرستان فسا، در نظر داریم تا نگاره سنگمزار مرحوم صابر راستیکردار عزیز را با بکارگیری فونتهای ایشان طراحی نماییم.
لذا با خانواده محترم ایشان صحبت کرده و خانواده ایشان با بزرگواری خود اجازه انجام چنین حرکتی را صادر کردهاند.
حال از همه دوستان و عزیزان جامعه نرمافزار آزاد خواهشمندیم در صورت برخورداری از توانایی و تخصص در این زمینه، ما را یاری نمایند تا بتوانیم به بهترین شکل ممکن به این امر مهم نائل آییم.
مهلت ارسال و طراحی تا تاریخ ۵ ام آذرماه
فرم ارسال طرح
https://formafzar.com/form/bro7j
پس از جمع آوری طرح های ارسال شده تا تاریخ مربوط پس از رأی گیری داوران مربوطه ۳ طرح انتخاب شده و برای خانواده راستی کردار ارسال میشود که از این ۳ طرح به انتخاب خانواده راستی کردار یک طرح تایید و انجام خواهد شد.
پ ن :
در حال حاضر متن و شعر برای سنگ مزار صابر راستی کردار برای ما ارسال نشده و تا چند روز آینده بعد از دریافت، برای طراحان ارسال میکنیم
با تشکر از همه شما که در این لحظات دشوار با ما هستید.
با توجه به فعالیت ارزشمند آن مرحوم برای جامعه نرمافزار ایران،
به پاس تقدیر از دستاوردهای بزرگ ایشان و معرفی هرچه بیشتر این هنرمند بزرگ به مردم شهرستان فسا، در نظر داریم تا نگاره سنگمزار مرحوم صابر راستیکردار عزیز را با بکارگیری فونتهای ایشان طراحی نماییم.
لذا با خانواده محترم ایشان صحبت کرده و خانواده ایشان با بزرگواری خود اجازه انجام چنین حرکتی را صادر کردهاند.
حال از همه دوستان و عزیزان جامعه نرمافزار آزاد خواهشمندیم در صورت برخورداری از توانایی و تخصص در این زمینه، ما را یاری نمایند تا بتوانیم به بهترین شکل ممکن به این امر مهم نائل آییم.
مهلت ارسال و طراحی تا تاریخ ۵ ام آذرماه
فرم ارسال طرح
https://formafzar.com/form/bro7j
پس از جمع آوری طرح های ارسال شده تا تاریخ مربوط پس از رأی گیری داوران مربوطه ۳ طرح انتخاب شده و برای خانواده راستی کردار ارسال میشود که از این ۳ طرح به انتخاب خانواده راستی کردار یک طرح تایید و انجام خواهد شد.
پ ن :
در حال حاضر متن و شعر برای سنگ مزار صابر راستی کردار برای ما ارسال نشده و تا چند روز آینده بعد از دریافت، برای طراحان ارسال میکنیم
با تشکر از همه شما که در این لحظات دشوار با ما هستید.
formafzar
فرم ارسال طراحی سنگ مزار مرحوم (صابر راستیکردار)
با تشکر از همه شما عزیزان که در این لحضات دشوار با ما هستید.
❤6
Forwarded from LinApps (𝙰.𝚁.𝚂 (𝙳𝙽𝙳))
نام: Thorium
توضیحات: یه فورک از کروم هست که بسیاری بهینه سازی ها روش اعمال شده.
با آخرین ورژن کروم بیلد شده و کلی پچ های مختلف از پروژه های مشابه مثل ungoogled chromium و ... اعمال شده.
همینطور شامل با بهینه سازی های مختلفی از سمت کامپایلر هستش و با SSE4, AVX و AES بیلد شده. بنابراین روی کامپیوتر های پایین تر از 2nd gen اینتل یا AMD FX اجرا نمیشه. اما در عوض سریع ترش میکنه.
ولی خب اگر هم قدیمی بود نگران نباشید. ورژن خاصی هم برای چنین سیستم ها درنظر گرفته شده که در صفحه اصلی میتونید ببینید.
مرجع:
Github
Main Page
پلتفرم ها:
Windows
MacOS
Linux
Android
Windows 7!!!
Raspberry PI
و چند تای دیگه که داخل صفحه اصلی پروژه میتونید ببینید.
🔅@LinApps
🔅@LinAcademy
توضیحات: یه فورک از کروم هست که بسیاری بهینه سازی ها روش اعمال شده.
با آخرین ورژن کروم بیلد شده و کلی پچ های مختلف از پروژه های مشابه مثل ungoogled chromium و ... اعمال شده.
همینطور شامل با بهینه سازی های مختلفی از سمت کامپایلر هستش و با SSE4, AVX و AES بیلد شده. بنابراین روی کامپیوتر های پایین تر از 2nd gen اینتل یا AMD FX اجرا نمیشه. اما در عوض سریع ترش میکنه.
ولی خب اگر هم قدیمی بود نگران نباشید. ورژن خاصی هم برای چنین سیستم ها درنظر گرفته شده که در صفحه اصلی میتونید ببینید.
مرجع:
Github
Main Page
پلتفرم ها:
Windows
MacOS
Linux
Android
Windows 7!!!
Raspberry PI
و چند تای دیگه که داخل صفحه اصلی پروژه میتونید ببینید.
🔅@LinApps
🔅@LinAcademy
Forwarded from LinApps (𝙰.𝚁.𝚂 (𝙳𝙽𝙳))
نام: Mercury
توضیحات: پروژه برادر Thorium. فورکی از firefox که داخلش بسیاری patch های بهینه سازی اعمال شده.
بیشتر این patch ها و بهینه سازی ها از LibreWolf، Waterfox, FireDragon, Ghostery میان.
نسبت به Thorium کمتر معروفه به همین دلیل واسه همه پلتفرم ها بیلد نداره متاسفانه ☹️☹️. اما واسه لینوکس و ویندوز بیلد هست.
مرجع:
Github
Main Page
پلتفرم ها:
Windows
Linux
پ.ن: اون بخش کنار لوگوش چیه؟
چرا من ایموجی ASCII غمگین میبینم :(
🔅@LinApps
🔅@LinAcademy
توضیحات: پروژه برادر Thorium. فورکی از firefox که داخلش بسیاری patch های بهینه سازی اعمال شده.
بیشتر این patch ها و بهینه سازی ها از LibreWolf، Waterfox, FireDragon, Ghostery میان.
نسبت به Thorium کمتر معروفه به همین دلیل واسه همه پلتفرم ها بیلد نداره متاسفانه ☹️☹️. اما واسه لینوکس و ویندوز بیلد هست.
مرجع:
Github
Main Page
پلتفرم ها:
Windows
Linux
پ.ن: اون بخش کنار لوگوش چیه؟
چرا من ایموجی ASCII غمگین میبینم :(
🔅@LinApps
🔅@LinAcademy
👍1
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته با دلاتو
دستهبندی: #آموزشی #کاربردی
راجب نمایش template ها موقع completion با ctags داخل (نئو)ویم:
بحث اصلی امروز از اینجاست: حالا داخل (نئو)ویم داخل insert mode با کی بایند
لیست suggestion هایی که ctags ارائه میده رو ببینید
بعد آپشن showfulltag رو از طریق
دوباره از داخل insert mode بیاید suggestion ها رو چک کنید و با حالت قبل مقایسه کنید
ظاهرا امروز 2 نکته شد P:
در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.
دستهبندی: #آموزشی #کاربردی
راجب نمایش template ها موقع completion با ctags داخل (نئو)ویم:
بحث اصلی امروز از اینجاست: حالا داخل (نئو)ویم داخل insert mode با کی بایند
ctrl-x ctrl-j
لیست suggestion هایی که ctags ارائه میده رو ببینید
(اگه رو مخه کی بایندش، راحت میتونید به هر چیزی خواستید map ش کنید:
vim.keymap.set('i', '<C-]>', '<C-X><C-]>')
مثال برای لوا).
بعد آپشن showfulltag رو از طریق
:set showfulltagفعال کنید.
دوباره از داخل insert mode بیاید suggestion ها رو چک کنید و با حالت قبل مقایسه کنید
(تصاویری که دادم تفاوتشون قبل و بعد ست کردن showfulltag هست).
ظاهرا امروز 2 نکته شد P:
در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته با دلاتو
دستهبندی: #آموزشی #کاربردی #emacs
راجب دووم آوردن داخل ایمکس تو روز اول، پارت اول:
برای اجرا از دستور زیر استفاده کردم:
اون فلگ بعدی که آخرین فلگه برای اینه که اگه emacsclient نتونست اجرا بشه
چی کار کنه، اگه مقدار بین quote ها رو خالی بذاریم اول میاد سعی میکنه daemon رو اجرا کنه و بعد دوباره تلاش کنه.
خب حالا وارد ایمکس شدید، یه صفحه سفید با یه منویی که هیچی نمیشه ازش فهمید و کی بایند هایی که موفق باشید بفهمیدشون، اما نکته مثبت: با اون دستور طومار وار بالا الان یه شل تو دسترس دارید و راحت میتونید به هر جایی خواستید cd کنید یا...، صرفا 2 دستور رو حضور ذهن داشته باشید:
رو هر فایلی بزنید اون رو از داخل emacs باز میکنه، اگه وجود نداشته باشه dired رو باز میکنه.
که ظاهرا فایل منیجر ایمکس هست رو باز میکنه.
دستهبندی: #آموزشی #کاربردی #emacs
راجب دووم آوردن داخل ایمکس تو روز اول، پارت اول:
برای اجرا از دستور زیر استفاده کردم:
emacsclient -c -e '(eshell)' -a ''توضیحش: اون emacsclient برای اجرای ایمکس به صورت daemon/ client هست که خب مزایاش مثل کاهش زمان لود رو میدونید؛ فلگ بعدی برای اجرای برنامه داخل یه پنجره گرافیکی جدا، بعدی برای اجرای دستور داخل quote ها، که میگه eshell رو اجرا کنه
(انگار bash ای هست که lisp رو میفهمه؟ شاید دارم عالی بیانش نمیکنم، سرچ کنید منبع راجب توضیحش زیاده)؛
اون فلگ بعدی که آخرین فلگه برای اینه که اگه emacsclient نتونست اجرا بشه
(مثلا daemon ران نباشه)
چی کار کنه، اگه مقدار بین quote ها رو خالی بذاریم اول میاد سعی میکنه daemon رو اجرا کنه و بعد دوباره تلاش کنه.
خب حالا وارد ایمکس شدید، یه صفحه سفید با یه منویی که هیچی نمیشه ازش فهمید و کی بایند هایی که موفق باشید بفهمیدشون، اما نکته مثبت: با اون دستور طومار وار بالا الان یه شل تو دسترس دارید و راحت میتونید به هر جایی خواستید cd کنید یا...، صرفا 2 دستور رو حضور ذهن داشته باشید:
find-file <filename>رو هر فایلی بزنید اون رو از داخل emacs باز میکنه، اگه وجود نداشته باشه dired رو باز میکنه.
diredکه ظاهرا فایل منیجر ایمکس هست رو باز میکنه.
👍1
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته با دلاتو
دستهبندی: #کاربردی #آموزشی #emacs
راجب دووم آوردن داخل ایمکس تو روز اول، پارت دوم:
گام بعدی و واجب برای بقا در این محیط خشن، رسیدن به آتش برای تامین غ... منظورم اینه کی بایند هاست، خب لیست از کی بایند هایی که نیازم شد رو سعی میکنم این وسط جا بدم
رفتن به ابتدای لاین:
رفتن به انتهای لاین:
مشابه visual mode برای انتخاب:
کات کردن:
کپی کردن:
پیست کردن:
جا به جایی مشابه hjkl داخل متن:
جا به جایی به یک کلمه بعد یا قبل:
سرچ از مکان فعلی کرسر تا انتهای فایل:
سرچ از مکان فعلی کرسر تا ابتدای فایل:
مشابه command mode داخل ویم:
برای help موارد مختلف:
سیو کردن:
خروج:
برای سوییچ بین بافر ها
بستن بافر:
ایجاد split:
برای سوییچ بین split ها:
بستن سایر split ها:
بستن split فعلی:
برای undo و redo کردن:
(برای redo باید undo رو undo کنید P:)
برای تغییر زوم، اول
برای حذف کاراکتر:
برای حذف کلمه:
برای حذف از مکان فعلی کرسر تا انتهای لاین:
برای رفتن به ابتدا و انتهای فایل:
فکر کنم این کی بایند ها برای دووم آوردن داخل ایمکس برای روز اول کافی باشن.
اضافه کنم: اگه درست یادم باشه
میشه با C-u و بعد عدد کی بایند ها رو تکرار کرد، مثلا:
3 کلمه کرسر رو به جلو حرکت میده.
در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.
دستهبندی: #کاربردی #آموزشی #emacs
راجب دووم آوردن داخل ایمکس تو روز اول، پارت دوم:
گام بعدی و واجب برای بقا در این محیط خشن، رسیدن به آتش برای تامین غ... منظورم اینه کی بایند هاست، خب لیست از کی بایند هایی که نیازم شد رو سعی میکنم این وسط جا بدم
(M منظور alt و C منظور ctrl هست، پس C-a مثلا یعنی ctrl a):رفتن به ابتدای لاین:
C-aرفتن به انتهای لاین:
C-eمشابه visual mode برای انتخاب:
C-SPC(منظور از SPC همون space هست).
کات کردن:
C-wکپی کردن:
C-Wپیست کردن:
C-yجا به جایی مشابه hjkl داخل متن:
C-b, C-n, C-p, C-fجا به جایی به یک کلمه بعد یا قبل:
M-b, M-fسرچ از مکان فعلی کرسر تا انتهای فایل:
C-sسرچ از مکان فعلی کرسر تا ابتدای فایل:
C-rمشابه command mode داخل ویم:
M-xبرای help موارد مختلف:
C-hسیو کردن:
C-x C-sخروج:
C-x C-cبرای سوییچ بین بافر ها
(همون eshell ای که اول باز کردید یکیشونه):
C-x bبستن بافر:
C-x kایجاد split:
C-x 2, C-x 3برای سوییچ بین split ها:
C-x oبستن سایر split ها:
C-x 1بستن split فعلی:
C-x 0برای undo و redo کردن:
C-x u(برای redo باید undo رو undo کنید P:)
برای تغییر زوم، اول
C-x میزنید، بعد با موارد زیر زوم رو کم و زیاد میکنید:C-=, C--برای حذف کاراکتر:
C-dبرای حذف کلمه:
M-dبرای حذف از مکان فعلی کرسر تا انتهای لاین:
C-kبرای رفتن به ابتدا و انتهای فایل:
M->, M-<فکر کنم این کی بایند ها برای دووم آوردن داخل ایمکس برای روز اول کافی باشن.
اضافه کنم: اگه درست یادم باشه
(تست نکردم)
میشه با C-u و بعد عدد کی بایند ها رو تکرار کرد، مثلا:
C-u 3 M-f3 کلمه کرسر رو به جلو حرکت میده.
در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته این قسمت با خودم (رضا)
دستهبندی: #کاربردی #آموزشی #wayland
میخواستم یه اسکرین شات بگیرم ولی از اونجایی که لپتاپ به مانیتور وصل بود از جفت صفحه ها اسکرین شات میگرفت
و چون از sway wm استفاده میکنم
و تنها ابزاری که میشناختم اسکرین شات بگیره grim بود
رفتم دنبالش ببینم باید چیکار کنم تا با موس قسمتی که select میکنم اسکرین شات بگیره
که با Slurp آشنا شدم احتمالا خیلی هاتون میدونید چیه و یا کار هم کردید باهاش ولی ،
یه سری آپشن ها داره که منطقه ای که select میکنی رو مختصات اون مکان رو میگه و یا به عنوان color picker هم میتونید استفاده کنید و خیلی کارهای دیگه
و خب معلومه باید این ابزار رو داخل grim استفاده کنیم
برای مثال
مثلا کامند زیر از مانیتور فوکوس شده میگیره
image magick
کار
Color picker
انجام میدیم
Source
نکته: jq رو یادتون نره نصب کنید
دستهبندی: #کاربردی #آموزشی #wayland
میخواستم یه اسکرین شات بگیرم ولی از اونجایی که لپتاپ به مانیتور وصل بود از جفت صفحه ها اسکرین شات میگرفت
و چون از sway wm استفاده میکنم
(ویلند عه)
و تنها ابزاری که میشناختم اسکرین شات بگیره grim بود
رفتم دنبالش ببینم باید چیکار کنم تا با موس قسمتی که select میکنم اسکرین شات بگیره
که با Slurp آشنا شدم احتمالا خیلی هاتون میدونید چیه و یا کار هم کردید باهاش ولی ،
یه سری آپشن ها داره که منطقه ای که select میکنی رو مختصات اون مکان رو میگه و یا به عنوان color picker هم میتونید استفاده کنید و خیلی کارهای دیگه
و خب معلومه باید این ابزار رو داخل grim استفاده کنیم
برای مثال
grim -g "$(slurp)"و خب میتونیم بیشتر دسترسی کاستوم کردن تو فایل نهایی عکس داشته باشیم
مثلا کامند زیر از مانیتور فوکوس شده میگیره
(همونی که الان آیکون موس روشه و پنجره ها فعال)
grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')یا مثال دیگه با این کامند با استفاده از
image magick
کار
Color picker
انجام میدیم
grim -g "$(slurp -p)" -t ppm - | convert - -format '%[pixel:p{0,0}]' txt:-Source
نکته: jq رو یادتون نره نصب کنید
🔥3
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته با دلاتو
دستهبندی: #کاربردی #آموزشی
راجب وارد کردن محتوای چند فایل به stdin:
بعضی مواقع یه اسکریپت یا دستوری دارید (مثل دستور
اولین چیزی که به ذهن میرسه اینه که شخص کل اون فایل ها رو پشت هم لیست کنه، اما جواب نمیده و فقط یکیشون رو به عنوان ورودی ارائه میکنه (فکر کنم مورد آخر؟). راه حلش هم ساده هست، مثال:
با خطای "no such file or directory" مواجه میشید
در نهایت تاکید کنم اون cat ابتدای 3 دستور بالا صرفا جهت بررسی صحت مقدار stdin از طریق پرینتش هست و طبیعتا باید با دستور یا اسکریپت مد نظرتون جایگزین بشه.
منابع بیشتر:
https://stackoverflow.com/questions/33157198/multiple-input-text-files-as-stdin-under-unix
https://unix.stackexchange.com/questions/20285/shorthand-for-feeding-contents-of-multiple-files-to-the-stdin-of-a-noscript
https://stackoverflow.com/questions/1487319/submitting-multiple-files-from-shell-noscript-through-standard-input
https://stackoverflow.com/questions/44552188/redirect-multiple-files-to-stdin
🔅@LinFAQ
🔅@LinAcademy
دستهبندی: #کاربردی #آموزشی
راجب وارد کردن محتوای چند فایل به stdin:
بعضی مواقع یه اسکریپت یا دستوری دارید (مثل دستور
sudo pacman -Syu --needed - < packages.txtکه داخل یکی از نکات قبلی بیان شد) و نیازه که به جای یه فایل، چند فایل رو به عنوان ورودی بهش بدید
(تو همین مورد بالا به عنوان مثال بخواید لیست پکیج هاتون رو داخل فایل های مختلف قرار بدید و دسته بندی کنید).
اولین چیزی که به ذهن میرسه اینه که شخص کل اون فایل ها رو پشت هم لیست کنه، اما جواب نمیده و فقط یکیشون رو به عنوان ورودی ارائه میکنه (فکر کنم مورد آخر؟). راه حلش هم ساده هست، مثال:
cat < <(cat file.txt file2.txt)که دستور بالا محتوای هر 2 فایل رو نمایش میده، اما اگه تست کنید
cat < file.txt file2.txtفقط محتوای فایل دوم نمایش داده میشه و اگه از
cat < cat file.txt file2.txtاستفاده کنید احتمالا
(اگه فایلی به اسم cat تو اون مسیر نداشته باشید P:)
با خطای "no such file or directory" مواجه میشید
(پس بین این 3 مورد فقط مورد اول درست جواب میده).
در نهایت تاکید کنم اون cat ابتدای 3 دستور بالا صرفا جهت بررسی صحت مقدار stdin از طریق پرینتش هست و طبیعتا باید با دستور یا اسکریپت مد نظرتون جایگزین بشه.
منابع بیشتر:
https://stackoverflow.com/questions/33157198/multiple-input-text-files-as-stdin-under-unix
https://unix.stackexchange.com/questions/20285/shorthand-for-feeding-contents-of-multiple-files-to-the-stdin-of-a-noscript
https://stackoverflow.com/questions/1487319/submitting-multiple-files-from-shell-noscript-through-standard-input
https://stackoverflow.com/questions/44552188/redirect-multiple-files-to-stdin
🔅@LinFAQ
🔅@LinAcademy
Stack Overflow
Multiple input text files as stdin under unix
new to Linux and C so probably a simple task..but
As per the noscript,
How, via the command line, do you redirect 2 distinct files as input, so that when the program is done with the ...
As per the noscript,
How, via the command line, do you redirect 2 distinct files as input, so that when the program is done with the ...
👏1
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته با دلاتو
دستهبندی: #آموزشی #کاربردی #emacs
یه سری منابع برای mu4e
راستی یه کپی از emacswiki راجب mu4e برم:
- قبلا یه ویدئو distrotube راجبش داده:
https://youtu.be/LKp3hQP2VxQ
کم و بیش درسته، فقط اون mbsync-git رو تا جایی که میدونم نیاز نیست نصب کنید، isync داخل مخازن رسمی هست.
اگه میخواید راجب isync بیشتر مطالعه کنید
https://wiki.archlinux.org/noscript/isync
منابع بیشتر راجب mu4e:
https://www.emacswiki.org/emacs/mu4e
اسکرین شات ها و منبع رسمی:
https://www.djcbsoftware.nl/code/mu/mu4e.html
میتونید کانفیگ gavin رو هم راجبش چک کنید:
https://github.com/Gavinok/emacs.d/blob/main/lisp/mu4e-config.el
🔅@LinFAQ
🔅@LinAcademy
دستهبندی: #آموزشی #کاربردی #emacs
یه سری منابع برای mu4e
(هنوز سراغش نرفتم، صرفا تحقیقه):
راستی یه کپی از emacswiki راجب mu4e برم:
mu4e is an email client for Emacs. It’s based on the mu email indexer/searcher.
- قبلا یه ویدئو distrotube راجبش داده:
Setting Up The Mu4e Email Client In Doom Emacs
https://youtu.be/LKp3hQP2VxQ
کم و بیش درسته، فقط اون mbsync-git رو تا جایی که میدونم نیاز نیست نصب کنید، isync داخل مخازن رسمی هست.
اگه میخواید راجب isync بیشتر مطالعه کنید
(به صورت کلی چیز جالبیه، بنظرم به چک کردنش میرزه):
https://wiki.archlinux.org/noscript/isync
منابع بیشتر راجب mu4e:
https://www.emacswiki.org/emacs/mu4e
اسکرین شات ها و منبع رسمی:
https://www.djcbsoftware.nl/code/mu/mu4e.html
میتونید کانفیگ gavin رو هم راجبش چک کنید:
https://github.com/Gavinok/emacs.d/blob/main/lisp/mu4e-config.el
🔅@LinFAQ
🔅@LinAcademy
YouTube
Setting Up The Mu4e Email Client In Doom Emacs
Do you use Emacs? Do you also use a desktop email client like Thunderbird or Geary? There is no need to run those desktop email clients when Emacs has a great email client available. That email client is called mu4e.
NOTE:
When I did the git clone of…
NOTE:
When I did the git clone of…
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته با دلاتو
دستهبندی: #آموزشی #کاربردی #emacs
راجب hook و فعال کردن لاین نامبر در مد های مورد نیاز داخل ایمکس:
وقتی میخوان یه فانکشن بعد از یه رویدادی
اجرا بشه، از hook استفاده میکنن
یه نمونه هم ازش بخوام بگم این هست:
که در واقع داره میگه اگه major mode بافر جزو prog-mode بود، بیاد لاین نامبر رو هم فعال کنه.
حالا کد زیر رو داریم:
تو اینجا داریم از use-package استفاده میکنیم، برای همین اسم پکیجی که فانکشن display-line-numbers-mode شامل میشه رو به کار میبریم، بعد بهش میگیم که تو کدوم پکیج ها قراره لاین نامبر نمایش داده بشه، اینطوری ۲ سود داره:
1- به جای اسم فانکشن ها، اسم پکیج ها رو به کار میبریم که عموما کوتاه تره.
2- همونطور که میبینید میتونم با یه بار نوشتن hook، داخل هر چند مدی که میخوام لاین نامبر رو نمایش بدم. مثلا اینجا علاوه بر prog-mode، داخل فایل هایی که org هستن هم لاین نامبر نمایش داده میشه.
اگه توی نکته ایرادی بود پیشاپیش عذر میخوام، به دلیل آشنایی کمم با ایمکس هست چون کلا یه هفته هست که دارم ازش استفاده میکنم و تو این یه هفته هم شاید بیشتر از ۱۰ ساعت ازش استفاده نکردم، ضمنا خوشحال میشم اگه خواستید ایراد رو اصلاح و بیان کنید.
در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.
🔅@LinFAQ
🔅@LinAcademy
دستهبندی: #آموزشی #کاربردی #emacs
راجب hook و فعال کردن لاین نامبر در مد های مورد نیاز داخل ایمکس:
وقتی میخوان یه فانکشن بعد از یه رویدادی
(مثل اجرای یه فانکشن دیگه یا مد خاصی یا...)
اجرا بشه، از hook استفاده میکنن
(یا حداقل برداشت من از hook اینطوری بوده).
یه نمونه هم ازش بخوام بگم این هست:
(add-hook 'prog-mode-hook 'display-line-numbers-mode)
که در واقع داره میگه اگه major mode بافر جزو prog-mode بود، بیاد لاین نامبر رو هم فعال کنه.
اینطوری داخل چیز هایی مثل dired که مدیر فایل هست یا کلا هر جایی که کد نیست، لاین نامبر رو هم نمیبینیم.
کلا major mode هایی که زبان برنامه نویسی هستن توی این دسته قرار میگیرن (در کل مفهوم major mode مشابه file type داخل (نئو)ویم هست).
حالا کد زیر رو داریم:
(use-package display-line-numbers
:hook org-mode prog-mode
)
تو اینجا داریم از use-package استفاده میکنیم، برای همین اسم پکیجی که فانکشن display-line-numbers-mode شامل میشه رو به کار میبریم، بعد بهش میگیم که تو کدوم پکیج ها قراره لاین نامبر نمایش داده بشه، اینطوری ۲ سود داره:
1- به جای اسم فانکشن ها، اسم پکیج ها رو به کار میبریم که عموما کوتاه تره.
2- همونطور که میبینید میتونم با یه بار نوشتن hook، داخل هر چند مدی که میخوام لاین نامبر رو نمایش بدم. مثلا اینجا علاوه بر prog-mode، داخل فایل هایی که org هستن هم لاین نامبر نمایش داده میشه.
راجب use-package بخوام مختصر بگم، برای کانفیگ ساده تر ازش استفاده میشه و پیش فرض توی نسخه های جدید ایمکس نصب هست.
جهت فهمیدن این که function یا variable مربوط به کدوم پکیج هست میتونید کی بایند C-h f یا C-h v رو بسته به function یا variable بودن بزنید و بعد اسمش رو وارد کنید، همون چند خط اول نوشته که برای کدوم پکیج هست، میتونید از طریق پسوند el تشخیص بدید.
اگه توی نکته ایرادی بود پیشاپیش عذر میخوام، به دلیل آشنایی کمم با ایمکس هست چون کلا یه هفته هست که دارم ازش استفاده میکنم و تو این یه هفته هم شاید بیشتر از ۱۰ ساعت ازش استفاده نکردم، ضمنا خوشحال میشم اگه خواستید ایراد رو اصلاح و بیان کنید.
در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.
🔅@LinFAQ
🔅@LinAcademy
www.gnu.org
Hooks (GNU Emacs Manual)
Next: Local Variables, Previous: Examining and Setting Variables, Up: Variables [Contents][Index]
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته با دلاتو
دستهبندی: #کاربردی #آموزشی #makefile
راجب make:
احتمالا تا حالا Makefile رو دیده باشید
تعریفم شاید دقیق نباشه، اما سعی میکنم واضح بیانش کنم: make یه ابزار هست که محتوای Makefile رو میخونه و بر اساس آرگومانی که بهش میدیم، میاد یه کاری رو انجام میده.
طوری که بهش نگاه میکنم: یه جورایی Makefile انگار یه فایل با یه سری switch case هست که وجود یا بروز بودن یه فایل یا یه case دیگه رو نگاه میکنه و بر اساس اون آرگومانی که بهش میدید، یه سری دستوراتی رو انجام میده.
کاربرد اصلیش بیلد کردن پکیج ها و کامپایل، اکسپورت کردن و... هست
و خاصیتش اتومات کردن کار، سادگی تایپ، سرعت بالا تر
و عدم تکرار اسم فایل ها و... هست.
نمونه کار های خلاقانه دیگه ای که براش دیدم میشه از مدیریت کانفیگ ها گفت:
How To Manage Your Dotfiles With Make
خودم خیلی باهاش کار نکردم، پس هم در حد پایه گفتم و هم خیلی اعتبار این نکته بالا نیست، اما قابل بیان دونستمش، اگه توضیح کامل میخواید منبع رسمی شاید بهترین گزینه باشه.
داخل یوتیوب هم آموزش راجبش زیاد هست، 2 تا آموزش کوتاه و یه نکته ای که نسبتا باید حواستون بهش باشه رو اضافه میکنم:
How to Create a Simple Makefile - Introduction to Makefiles
Learn make in 60 seconds.
Why that "Perfect" Makefile Doesn't Work.
چون 3 لینک بالا رو اضافه کردم و توضیحاتشون رو بیشتر از دانش خودم دونستم، پس نحوه نوشتن Makefile رو دیگه توضیح نمیدم. صرفا یه نمونه که برای نیاز خودم نوشتم رو ضمیمه این پست میکنم.
در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.
🔅@LinFAQ
🔅@LinAcademy
دستهبندی: #کاربردی #آموزشی #makefile
راجب make:
احتمالا تا حالا Makefile رو دیده باشید
مخصوصا اگه از ابزارا suckless استفاده کردید.
تعریفم شاید دقیق نباشه، اما سعی میکنم واضح بیانش کنم: make یه ابزار هست که محتوای Makefile رو میخونه و بر اساس آرگومانی که بهش میدیم، میاد یه کاری رو انجام میده.
طوری که بهش نگاه میکنم: یه جورایی Makefile انگار یه فایل با یه سری switch case هست که وجود یا بروز بودن یه فایل یا یه case دیگه رو نگاه میکنه و بر اساس اون آرگومانی که بهش میدید، یه سری دستوراتی رو انجام میده.
کاربرد اصلیش بیلد کردن پکیج ها و کامپایل، اکسپورت کردن و... هست
مثلا جای این که بنویسید gcc... میاید میزنید make و تمام.
و خاصیتش اتومات کردن کار، سادگی تایپ، سرعت بالا تر
خودش چک میکنه اگه فایلی بروز بود دیگه دستش نمیزنه و... سر همین پروسه زمان کمتری میبره.
و عدم تکرار اسم فایل ها و... هست.
میتونید متغیر براش تعریف کنید.
نمونه کار های خلاقانه دیگه ای که براش دیدم میشه از مدیریت کانفیگ ها گفت:
How To Manage Your Dotfiles With Make
خودم خیلی باهاش کار نکردم، پس هم در حد پایه گفتم و هم خیلی اعتبار این نکته بالا نیست، اما قابل بیان دونستمش، اگه توضیح کامل میخواید منبع رسمی شاید بهترین گزینه باشه.
داخل یوتیوب هم آموزش راجبش زیاد هست، 2 تا آموزش کوتاه و یه نکته ای که نسبتا باید حواستون بهش باشه رو اضافه میکنم:
How to Create a Simple Makefile - Introduction to Makefiles
Learn make in 60 seconds.
Why that "Perfect" Makefile Doesn't Work.
چون 3 لینک بالا رو اضافه کردم و توضیحاتشون رو بیشتر از دانش خودم دونستم، پس نحوه نوشتن Makefile رو دیگه توضیح نمیدم. صرفا یه نمونه که برای نیاز خودم نوشتم رو ضمیمه این پست میکنم.
در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.
🔅@LinFAQ
🔅@LinAcademy
YouTube
How to Create a Simple Makefile - Introduction to Makefiles
In this video I show how to create a simple makefile.
Want to learn C++? I highly recommend this book http://amzn.to/1PftaSt
Donate - http://bit.ly/17vCDFx
STILL NEED MORE HELP?
Connect one-on-one with a Programming Tutor. Click the link below:
http…
Want to learn C++? I highly recommend this book http://amzn.to/1PftaSt
Donate - http://bit.ly/17vCDFx
STILL NEED MORE HELP?
Connect one-on-one with a Programming Tutor. Click the link below:
http…
❤1
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته با دلاتو
دستهبندی: #آموزشی #کاربردی #emacs
قابلیت های پیش فرض ایمکس که برام جالب و مهم بودن و آشنایی باهاشون موقع تغییر ادیتور به ایمکس نسبتا واجبه:
- مورد اول org mode هست، میشه یه سری پکیج مثل org-modern نصبید که ظاهر بهتر بشه، اما حتی وجود خود org mode و گرفتن خروجی کد داخل هر فایل دیگه و... قابلیت مفیدیه.
- مورد بعد eshell هست، عملا بهتون یه شل میده که داخلش میتونید از فانکشن های ایمکس استفاده کنید، مثلا بیاید با find-file یه فایل رو داخل همون پنجره ایمکس باز کنید و...
- برا مدیر فایل هم dired رو داریم. ازش زیاد استفاده نکردم پس نظری نمیدم، اما قابلیت هاش رو نگاه بندازید جالبه.
- میشه داخل هر فایلی (تا جایی که میدونم هر بافری که میشه داخلش تایپ کرد) کد elisp نوشت و با C-x C-e اجراش کرد. مثلا وسط کد نوشتن جای این که M-x بزنید، داخل همون فایل فانکشن رو مینویسید و اجراش میکنید و بعد لاین رو حذف میکنید.
- کلید تب به صورت پیش فرض indent اون خط رو اصلاح میکنه.
- سیستم daemon client. هم زمان باز شدن پنجره رو صفر میکنه و هم میتونید باهاش از طریق شل یا ابزار های مختلف به ایمکس فرمان بدید.
ضمنا دیگه نیاز نیست نگران اشتباهی بستن پنجره باشید.
پیشنهاد میدم ویدئو زیر از protesilaos stavrou رو براش ببینید:
Basics of Emacs client (`emacsclient' program)
- تو نسخه جدید ایمکس، use-package به صورت builtin وجود داره که استفاده ازش کمک میکنه کانفیگ خیلی منظم تر بشه (علاوه بر بهبود سرعت لود اولیه و...).
- وجود major modes و prog-mode. تا حدی مشابه file type هستن، اما انگار درک خیلی بهتری دارن.
برای لیست زبان هایی که دیفالت major mode شون ردیفه قبلا لینک داده بودم.
- سیستم راهنماش. چند نکته راجبش هست:
1- راهنما های بخش های مختلف کی بایند هاشون جدا و دسته بندی شده.
2- وقتی راهنمای function یا variable یا... رو چک میکنید، داخل split ای که براش باز میشه فقط مطالب مربوط به همون function یا variable یا... رو میبینید.
3- داخل راهنما گفته شده که اون function یا... برای کدوم پکیج هست.
4- اگه درست یادم باشه مقدار پیشفرض و مقدار فعلی اون variable یا... رو میگه.
- گرافیکی بودنش و پشتیبانی عالی از ligatures و زبان فارسی و...
اینا قابلیت هایی بودن که تو چند ساعت اول کار با ایمکس به چشمم اومدن و هنوز قابلیت هایی مثل compiler و debugger رو نگاه هم ننداختم.
🔅@LinFAQ
🔅@LinAcademy
دستهبندی: #آموزشی #کاربردی #emacs
قابلیت های پیش فرض ایمکس که برام جالب و مهم بودن و آشنایی باهاشون موقع تغییر ادیتور به ایمکس نسبتا واجبه:
- مورد اول org mode هست، میشه یه سری پکیج مثل org-modern نصبید که ظاهر بهتر بشه، اما حتی وجود خود org mode و گرفتن خروجی کد داخل هر فایل دیگه و... قابلیت مفیدیه.
- مورد بعد eshell هست، عملا بهتون یه شل میده که داخلش میتونید از فانکشن های ایمکس استفاده کنید، مثلا بیاید با find-file یه فایل رو داخل همون پنجره ایمکس باز کنید و...
- برا مدیر فایل هم dired رو داریم. ازش زیاد استفاده نکردم پس نظری نمیدم، اما قابلیت هاش رو نگاه بندازید جالبه.
- میشه داخل هر فایلی (تا جایی که میدونم هر بافری که میشه داخلش تایپ کرد) کد elisp نوشت و با C-x C-e اجراش کرد. مثلا وسط کد نوشتن جای این که M-x بزنید، داخل همون فایل فانکشن رو مینویسید و اجراش میکنید و بعد لاین رو حذف میکنید.
- کلید تب به صورت پیش فرض indent اون خط رو اصلاح میکنه.
- سیستم daemon client. هم زمان باز شدن پنجره رو صفر میکنه و هم میتونید باهاش از طریق شل یا ابزار های مختلف به ایمکس فرمان بدید.
ضمنا دیگه نیاز نیست نگران اشتباهی بستن پنجره باشید.
پیشنهاد میدم ویدئو زیر از protesilaos stavrou رو براش ببینید:
Basics of Emacs client (`emacsclient' program)
- تو نسخه جدید ایمکس، use-package به صورت builtin وجود داره که استفاده ازش کمک میکنه کانفیگ خیلی منظم تر بشه (علاوه بر بهبود سرعت لود اولیه و...).
- وجود major modes و prog-mode. تا حدی مشابه file type هستن، اما انگار درک خیلی بهتری دارن.
برای لیست زبان هایی که دیفالت major mode شون ردیفه قبلا لینک داده بودم.
- سیستم راهنماش. چند نکته راجبش هست:
1- راهنما های بخش های مختلف کی بایند هاشون جدا و دسته بندی شده.
مثلا C-h v برای variable ها.
2- وقتی راهنمای function یا variable یا... رو چک میکنید، داخل split ای که براش باز میشه فقط مطالب مربوط به همون function یا variable یا... رو میبینید.
3- داخل راهنما گفته شده که اون function یا... برای کدوم پکیج هست.
4- اگه درست یادم باشه مقدار پیشفرض و مقدار فعلی اون variable یا... رو میگه.
- گرافیکی بودنش و پشتیبانی عالی از ligatures و زبان فارسی و...
اینا قابلیت هایی بودن که تو چند ساعت اول کار با ایمکس به چشمم اومدن و هنوز قابلیت هایی مثل compiler و debugger رو نگاه هم ننداختم.
🔅@LinFAQ
🔅@LinAcademy
Wikipedia
Org-mode
Org Mode (also: org-mode; /ˈɔːrɡ moʊd/) is a mode for document editing, formatting, and organizing within the free software text editor GNU Emacs and its derivatives, designed for notes, planning, and authoring. The name is used to encompass plain text files…
❤1