TIL: Ghostty – شبیهساز ترمینال جدید و کاملا امیدوارکننده

سلام! اگر وبلاگ من را دنبال کرده باشید، ممکن است متوجه شده باشید که من معمولاً به عنوان سبک پست هایم به سمت مطالب طولانی گرایش دارم. و در حالی که من فکر می کنم چنین پست هایی به طور کلی عالی هستند، آماده سازی، نوشتن و ویرایش آنها قبل از انتشار همیشه طول می کشد، که در نهایت به نسبت وبلاگ نویسی بسیار نادر و متناقض در پایان من ختم می شود.
اخیراً با مقاله “درباره چه چیزی در وبلاگ” نوشته سایمون ویلیسون برخورد کرده ام که در کنار چیزهای دیگر، بینش خوبی در مورد نوع پست های کوتاه “امروز یاد گرفتم” برای به اشتراک گذاشتن بخش های کوچکی از دانش اخیراً به دست آمده با مخاطبان داشت. . بنابراین، این تلاش من برای گنجاندن این رویکرد در کنار کارهای طولانی است که به نوشتن ادامه خواهم داد (من چند موضوع را برنامه ریزی کرده ام، بنابراین با ما همراه باشید و در خبرنامه من مشترک شوید تا پس از انتشار یک پست جدید، ایمیلی دریافت کنید). بیا برویم !
مانند بسیاری از افراد دیگر در فناوری، من دوست دارم برنامهها، کتابخانهها، زبانهای جدید را امتحان کنم و تمام تلاشم را میکنم تا کنجکاو و ذهن باز بمانم. در عین حال، چند ابزار وجود دارد که مدتی است از آنها استفاده می کنم و آنها را برای همیشه با خود حمل می کنم: به عنوان مثال، فایرفاکس، به عنوان یک مرورگر پیش فرض، Sublime به عنوان یک ویرایشگر متن پیش فرض رابط کاربری گرافیکی و غیره. همین امر در مورد برنامه ترمینال نیز صدق می کند: از زمانی که 6 سال پیش به MacBook تغییر مکان دادم، از iTerm2 استفاده می کردم. oh-my-zsh
افزودنی و robbyrussell
موضوع در بالا، و من حتی از آن زمان خوشحال بوده ام. من از انعطاف پذیری پیکربندی آن، فرمان های مبتنی بر تاریخ کامل، امکان اسکرول با ماوس/پد لمسی قدردانی می کنم. علاوه بر این، من تعداد مناسبی از نامهای مستعار را جمعآوری کردهام که در صورت انتخاب به ترمینال جدید، باید آنها را منتقل کنم.
با این حال، اخیراً اتفاقی افتاده است: آسیبپذیری امنیتی مربوط به SSH در iTerm2 کشف و اصلاح شده است (اگر کاربر هستید و نسخه را بهروزرسانی نکردهاید، قویاً شما را تشویق میکنم که این کار را در اسرع وقت انجام دهید).
یک سلب مسئولیت فوری: من هیچ احساس منفی در مورد آسیب پذیری های امنیتی در برنامه های منبع باز رایگان ندارم. من برای افرادی که مایلند اوقات فراغت خود را برای ساخت و نگهداری آن ابزارها اختصاص دهند و آنها را با جهان به اشتراک بگذارند، احترام و قدردانی زیادی دارم. در مورد من، این فقط یک محرک بود “هی، مدتی است که وضعیت شبیه سازهای ترمینال در بازار را بررسی کرده ای” که کنجکاوی من را برانگیخت.
باد تغییر
یادم می آید که جولیا ایوانز، که وبلاگش را دنبال می کنم، چند بار اشاره کرد که از ماهی استفاده می کند. همچنین چند روز پیش با این پست در مورد بازنویسی Fish to Rust از C++ برخورد کردم که کار جالبی به نظر می رسد. با این حال، مدتی پیش آن را امتحان کردم، و با وجود اینکه بسیار تمیز بود، متقاعد نشدم که به طور کامل به آن تغییر دهم.
در همان زمان، در Slack داخلی شرکتی که من در آن کار میکنم، همکارم از تیم امنیتی پرسید که آیا ما سیاستی در مورد برنامهها داریم، زیرا آنها میخواهند از Ghostty به عنوان شبیهساز ترمینال خود استفاده کنند. نگاهی به آن انداختم و فورا توجهم را به خود جلب کرد: ظاهری تازه، تنظیمات بدون پیکربندی، رابط کاربری مبتنی بر پلتفرم (که با جزئیات در پست «Ghostty Is Native—So What?» توسط گرگوری آندرس کشف شد) و GPU شتاب و FOSS با مجوز MIT بسیار مجاز (در اینجا مخزن GitHub است). من نویسنده (میچل هاشیموتو) را در گوگل جستجو کردم و متوجه شدم که او یکی از بنیانگذاران HashiCorp است که Terraform، Vargant، Consult، Vault و دیگران را به دنیا آورده است. این کاملاً یک لیست است. و در آخر اما نه کماهمیت، Zig به عنوان زبان اصلی برنامهنویسی نیز عامل جالبی بود.
بنابراین، من دویدم brew install --cask ghostty
(فرمان از اینجاست)، و آن را امتحان کرد.
اولین چیزی که به وضوح دیدم طراحی آن بود، و به نظر مینیمالیست، بدون حواس پرتی، و تا حدودی تازه به نظر می رسید. با این حال، مجبور شدم اندازه فونت را کمی افزایش دهم تا با سطح راحتی من مطابقت داشته باشد.
در حالی که طراحی تا حدی بخش مهمی است، چیز دیگری وجود دارد که اخیراً مشاهده کردهام و بنابراین آن را دوست داشتهام: تنظیمات پیشفرض معقول برنامهها، که به این معنی است که اکثر کاربران هرگز نیازی به ایجاد مشکل در تنظیمات ندارند. اصلا در اینجا یک پست عالی توسط Arne در مورد این روند وجود دارد که ابزارهایی مانند Fish (که در بالا ذکر شد)، Helix، Lazygit، Zellij، k9s، و غیره فهرست شده است. و این یک رویکرد بسیار کاربرپسند: نصب و استفاده فوری! من معتقدم که Ghostty افزودنی خوبی به لیست خواهد بود. به عنوان مثال:
- همه نامهای مستعار و متغیرهای محیط من در داخل پیکربندی شدهاند
~/.zshrc
بلافاصله در دسترس بودند، زیرا به نظر می رسد Ghostty می تواند آنها را بارگیری کند. بنابراین، می توانم به تایپ کردن ادامه دهمk
در صورت نیاز به استفادهkubectl
، یاr
برایranger
و ده ها مورد دیگر پیچیده تر. این بسیار بسیار عالی است، زیرا برای کارکرد آن نیازی به کپی پیست نیست. - تکمیل خودکار مبتنی بر تاریخچه خارج از کادر موجود است
- برجسته کردن نحو به طور پیش فرض کار می کند
- میانبرهای آشنا، مانند
⌘ + T
برای باز کردن یک برگه جدید،⌘ + W
برای بستن آن،⌘ + D
برای تقسیم پنجره به 2 تب - دقیقاً مربوط به پیکربندی نیست، اما ترمینال بدون هیچ گونه تغییر تنظیمات بسیار سریع احساس می شود
یک جزئیات کوچک وجود داشت که در iTerm2 ناامیدکننده به نظرم رسید: وقتی فشار دادم ⌥ + Left Arrow
(که در حافظه عضلانی من است)، به جای پریدن از روی کلمه سمت چپ، ترمینال تایپ کرد D
. همین تلاش، اما در جهت دیگر، به نتیجه رسید C
. هیچ چیز بزرگی نیست، اما زمانی که دستور از کلمات زیادی تشکیل شده باشد آزار دهنده است. در Ghostty این همان طور که انتظار داشتم کار کرد: 5 امتیاز به گریفیندور!
من در بالا ذکر کردم که از آن استفاده کرده ام robbyrussell
(از اینجا) برای راه اندازی ترمینال iTerm2 من، بنابراین تعجب کردم که آیا همان یکی موجود است یا خیر. من می خواستم شروع به جستجو در لیست موضوعات موجود کنم، اما متوجه یک نکته در Ghostty doc برای اجرا شدم. ghostty +list-themes
در ترمینال، و این چیزی است که اتفاق افتاده است:
این باحال نیست؟ من پیدا نکردم robbyrussell
تم وجود دارد، شاید اکنون نام دیگری داشته باشد؟
یکی دیگر از مواردی که مرا شگفت زده کرد، ابزار توسعه دهنده تعبیه شده است که از کلید میانبر مشابه فایرفاکس و کروم DevTools استفاده می کند:⌥ +
⌘ + من:
راستش را بخواهید، من در استفاده روزانه از ترمینال خود مورد استفاده برای این ویژگی را پیدا نکردم، اما میزان توجه به جزئیات کوچک Ghostty را نشان می دهد.
به نظر می رسد که Ghostty اخیراً به یک چیز تبلیغاتی تبدیل شده است (محققانه، imho)، زیرا من مطالب بیشتری در مورد آن می بینم. اکثر مردم از عملکرد آن قدردانی می کنند، که من هنوز فرصتی برای آزمایش درست آن نداشتم، به جای اینکه سعی کنم متن این پست را در ترمینال وارد کنم تا ببینم چقدر سریع آن را ارائه می دهد:
سرعت موشک نیست، اما مک بوک من 6 ساله است، خیلی سخت است که فقط Ghostty را برای آن مقصر بدانم. iTerm2 کمی کندتر بود. لطفاً به من اطلاع دهید اگر همان را روی M1 یا مکبوک جدیدتر امتحان کردهاید، کنجکاو هستم که نتایج را بدانم.
به جای نتیجه گیری
از امروز، من هنوز در مرحله آزمایش Ghostty هستم، اما هنوز نیازی به بازگشت به تنظیمات ترمینال قدیمی نداشته ام، که نشانه خوبی است. با این حال، ممکن است این اتفاق بیفتد، زیرا ترمینال هنوز گم شده است ⌘ + F
قابلیت جستجو، که هر از گاهی مفید است. یک موضوع باز وجود دارد و یک پیام از طرف سازنده ابزار وجود دارد که این یکی از اولویتهای اصلی است، بنابراین امیدوارم زمان آمدن آن قطعی باشد.
از نظر مسائل، من هیچ موردی را متوجه نشده ام، به جز اینکه تغییر اندازه پنجره گاهی اوقات تاخیر کوچکی دارد، زمانی که نوار بالایی چند میلی ثانیه پشت پنجره اصلی قرار دارد. همچنین، چیزی که خارج از استانداردهای ترمینال است، اما من شخصاً دوست دارم داشته باشم این است:
-
⌘ + A
برای انتخاب دستور فعلی به جای کل متن پنجره (یا با هر کلیدبندی دیگر برای این عمل) -
⌥ + ⇧ + Left/Right Arrow
برای انتخاب کلمه چپ/راست دستور وارد شده اما هنوز ارسال نشده (یکی دیگر از موارد حافظه عضلانی)، اما انواع GhosttyD
در عوض
اگر متوجه چیزی شدم یا نظرم تغییر کرد، پست را به روز می کنم و به تنظیمات قبلی باز می گردم، پس با ما همراه باشید. تا اینجا فقط حال و هوای خوب وجود داشت، بنابراین اگر دوست دارید چیز جدیدی را امتحان کنید، میتواند محل خوبی برای شروع باشد.
از آن لذت ببرید! =)
PS چیزی واضح است، اما با این وجود لازم است به آن اشاره کنم: به هر حال من به Ghostty وابسته نیستم، و هیچ کس از من نخواست که آن را آزمایش یا بررسی کنم، این نظر صادقانه من در مورد ابزاری است که به نظرم ارزش به اشتراک گذاری با جامعه را دارد.
PPS امیدوارم این سبک از پست های کوتاه (هنوز روی قسمت “کوتاه” کار می کنم) خوشتان بیاید. اگر نمی خواهید آینده های آینده را از دست بدهید: