چرا ویم رو به vscode ترجیح دادم(ویرایش شد)
خب بریم با صفر تا صد ویم آشنا بشیم و قراره بشیم یک مرجع ویم
این مطلب قسمت اول سری صفر تا صد ویم هست که قراره در یک سری بلند تولید بشه و برای ادامه مطالب که گم نکنید یک مخزن در گیت هاب ساختیم که تمام لینک های مطالب مرتبط به ویم در اونجا قرار داره
این هم لینک تمام سری ویم ( یادتون باشه این ریپو همیشه در حال آپدیت شدن هست)
شاید کمی عجیب باشه که کسی پیدا بشه که به یکی ازبهترین ادیتورهای کدنویسی دنیا خورده بگیره و بگه که مهاجرت کردم
اما من هم مثل همه آدم ها دلیل دارم برای کارهام که گفتم بهتر هست که این دلایل رو بنویسم و شاید به کس دیگری کمک کنه که بین این جنگ ادیتورها بهتر انتخاب کنه
vsocde تنها ادیتور خوب نیست
من قبل از اینکه کلا مهاجرت کنم به لینوکس فکر میکردم که تنها ادیتوری که واقعا لیاقت بهترین رو داره همین vscode
مایکروسافت هست
اما یواش یواش که وارد دنیای لینوکس شدم دیدم که vim
و یا emacs
چیزی کمتر از بقیه نداره حداقل برای من فرانت کار و چه بسا امتیازاتی رو به من میده که ادیتور مایکروسافت نمیتونست به من بده
به همین سعی میکنم در این مطلب دلایل خوم رو بیارم و حتی یک سری شایعاتی نسبت به ویم رو هم اینجا خاتمه بدم
خب بریم اول با شایعاتی که در پیرامون ویم گفته میشه بررسی کنیم
شایعه اول: ویم فارسی رو ساپورت نمیکنه
اولین و مهم ترین دلیلی که باعث شد من هیچ وقت سمت ویم نرم این بود که باور داشتم که ویم مشکل بسیار زیادی رو با فارسی داره اما اینطور نبود
میخوام یک واقعیت رو بهتون بگم من این مطلب رو تمام و کمال درون ویم نوشتم این هم تصویرش
اما آیا واقعا این حرف دروغ بوده؟ پس چرا وقتی توی اینترنت میچرخی میبینی که خیلی سوالات در پیرامون این مشکل وجود داره پس مشکل از کجاست
مشکل ساپورت نکردن ویم تمام و کمال مرتبط به ترمینال شما میشه و نه ویم
اگر ویم شما نمیتونه به درستی فارسی رو نشون بده دو دلیل عمده داره
1- فونت شما فارسی رو ساپورت نمیکنه که من هم همین مشکل رو دارم چون فونت های من از nerd
هستند و مشکل دارن بهترین فونتی که فارسی رو به خوبی ساپورت میکنه و ترمینال شما رو بهم نمیریزه فونت DejaVu Sans Mono Bold
هست
2- مشکل بعدی این هست که ترمینال شما کلا فارسی رو ساپورت نمیکنه که خیلی کم پیش میاد مگر اینکه emulator
شما یا قدیمی باشه و یا ترمینال خوبی نباشه که لیست ترمینال هایی که فارسی
رو ساپورت میکنه رو مینویسم
1234- Gnome Terminal - Konsole - windows Terminal (WSL) - mlterm
عملا میتونم بگم که مشکلی از این نظر نداریم توی ترمینال و میتونیم ترمینال مورد نظر رو برای فارسی کردن کاملا آماده کنیم که نگران نباشید در مطالب بعدی کاملا این مشکل رو حل میکنیم
ویرایش اول: دوستان لطف کردن و اشکال این مطلب رو بهم گفتن متاسفانه من به اشتباه طوری مطلب رو رسونده بودم که انگار ویم هیچ مشکلی با RTL نداره اما نه اینطور نیست بلکه ویم هم مثل باقی ادیتورها نمیتونه از سمت راست به چپ بنویسه و اگر مخلوط انگلیسی بود به ممشکل نخوره چیزی که حتی در vscode هم موجوده اما خیلی ها بر این باور بودن که ادیتور ویم کلمات فارسی رو جدا به جدا مینویسه که این ربط به ترمینال شما داره نه ویم
پس ویم تنها مشکلی با حروف فارسی نداره نه اینکه مشکلی در RTL نداشته باشه
باز هم از استاد خوبم آقای حکایتی ممنونم بابت اطلاع رسانی
شایعه دوم ویم یک ادیتور مبتدی و ساده هست
این شاید خیلی داره دیگه بهش پر و بال داده میشه و همه بر این باور شدن که ویم مثل nano
هست و نمیتونیم کاری انجام بدیم
اما هیچ کس نمیدونه که ویم یک ابزاری هست که کاملا توسط برنامه نویس manipulate
میشه و شما باید از ابتدا اون رو بسازید و تبدیلش کنید به یک ابزار بسیار قدرتمند
وقتی در مورد ساختن صحبت میشه همه بر این باور میشن که خب یعنی من باید دانش برنامه نویسی بالایی داشته باشم که خب اگر داشته باشید و بتونید پلاگین خودتون رو بسازید که عالی میشه اما اصلا نیازی نیست و تمام چیزها برای شما فراهم هست تنها باید راهش رو بلد باشید
ادیتور ویم میتونه کاملا نیازهای شما رو برآورده کنه و از یک ادیتور ساده تبدیل بشه به چیزی که حتی در بعضی موارد از vscode
بهتر عمل میکنه
اما چه چیزی باعث میشه که من بخوام vscode
رو رها کنم و خودم رو به یادگیری بلند مدت ویم عادت بدم قطعا باید دلایل خوبی باشن
ویم واقعا سبک هست
من بر روی ترمینال خودم از tmux استفاده میکنم و به همین دلیل میتونم به راحتی در هر pane
بیش از یک ویم رو اجرا کنم
به شخصه در هر بار شاید حدود 5 ویم درون ترمینال من باز هست بدون اینکه لحظه ای احساس سنگینی کنم ولی من بر روی سیستم خودم واقعا نمیتونستم بیش از 2 vscode
رو همزمان بالا بیارم واگر با کندی شدید سیستم خودم مواجه میشدم
در تصویر بالا من 5 ویم رو در یک تب باز کردم ولی به هیچ عنوان احساس سنگینی نمیکنم در حالی که هر کدوم از اینها پلاگین های بسیار سنگینی نصب شده
ویم در همه جا موجود هست
خب دلیل بعدی که باعث شد من به سمت ویم نظرم جلب بشه این هست که این ادیتور در همه جا موجود هست
یک لحظه وایسا ببینم مگه vscode
هم همه جا موجود نیست پس چرا مزیت خوندیش؟ چون دو دلیل داره
1- وقتی میگم همه جا یعنی اینکه من حتی ویم رو میتونم درون گوشی خودم باز کنم و بدون هیچ یک کاستی به کارم ادامه بدم
2- وقتی میگم ویم همه جا هست یعنی اینکه من میتونم با ssh کردن به سیستم خودم در یک مکان دیگه میتونم به ویم خودم با تمام پلاگین هام و تنظیماتم دسترسی داشته باشم
3- وقتی میگم در همه جا موجود هست یعنی اینکه حتی من میتونم روی چیپ های arm به توسعه و کدنویسی بپردازم
اما در vscode
شما باید در هر مکانی این نرم افزار رو نصب کنید و اینکه شما از طریق تبلت و یا گوشی خودتون دسترسی بهvscode
ندارید
اما من میتونم ویم رو بر روی یک raspberri pi هم نصب کنم و کارم رو ادامه بدم بدون هیچ گونه کم و کاستی
ویرایش دوم:اما به تازگی خبر دار شدم که vscode بر روی چیپ های آرم هم در حال توسعه هست که تنها روی سیستم ویندوزی الان در دسترس هست اما اگر نمونه اون رو بر روی آرم بخواهید تجربه کنید میتونید از code-oss استفاده کنید
قطعا در آینده نزدیک در مورد تبدیل کردن یک گوشی ساده به یک ابزار برنامه نویسی پیشرفته صحبت میکنم
پس وقتی همه جا مطرح میشه یعنی اینکه حتی میتونم ویم رو روی یک تلویزیون اندرویدی هم بالا بیارمش
ویم توسط برنامه نویس ها توسعه داده میشود
یکی از دلایلی که باعث میشه به عنوان یک برنامه نویس دلگرم بشم این هست که آیا نرم افزار مورد نظر من همیشه در اختیار من هست؟ و یا نه به علت مشکلات اقتصادی و یا کسب درآمد بعد از مدتی دچار تغییرات زیادی میشه
ویم توسط برنامه نویس هایی مثل خودمون در حال توسعه هست و به عبارتی یک سیستم کاملا open source
هست و این باعث میشه که من هیچ وقت نگران توسعه این ادیتور نباشم چون سر تاسر دنیا دولوپرها در حال تغییر و گسترش اون هستند و نگران این نیستم که به دلایلی همچون مشکلات اقتصادی اولین ابزارهایی که تعدیل میشن همون هایی هستند که به صورت رایگان در اختیار مردم قرار گرفتند
و یک خبر جالب این هست که اگر شما برای ویم مبلغی رو Donate میکنید خرج کودکان فقیر میشه و این خودش خیلی در نوع خودش جذابه
در بحث UX ویم بسیار قدرتمند عمل کرده
ویم یک ابزار عالی برای برنامه نویس هست پس به همین دلیل باید تمام بخش ها برای یک برنامه نویس ساخته و تفکر شده باشه یکی از اونها این هست که من برای navigate
کردن و هر کار دیگه نیاز نداشته باشم که از کیبورد به موس برم و دستم رو به هیچ عنوان از روی کیبورد بر ندارم
ویم این امکان رو میده که شما بی نیاز از موس بشید و تنها رفیقتون کیبوردتون باشه
کافی هست که به دستورات ویم عادت کنید و متوجه سرعت عملکرد در زمینه ناوبری درون کدهاتون میشید
این دستورات اینقدر معروف هستند که حتی خیلی از نرم افزارهای ترمینال با دستورات ویم حرکت میکنند و حتی vscode
افزونه ای داره که ادیتور شما رو دقیقا مثل ویم میکنه
در بحث ریموت ویم ساده تر ظاهر میشه
ریموت کار کردن یکی از بحث های داغ این روزها مخصوصا در زمان ویروس کرونا هست
یعنی من در خانه و یا جایی دور از محل واقعی کارم شروع به کار کنم و تغییرات رو بر روی سرور مورد نظر پیاده سازی کنم
اما ممکن هست حتی بعضی اوقات نیاز داشته باشید که بدون بلند شدن از پای سیستم خودتون به مشکل سرور بپردازید و یا اینکه همکارتون ازتون درخواست این رو کرده که فایلش رو ببینید و نظرتون رو در مورد کدش بگید
قطعا برای اینکار یا من باید فایل مورد نظر رو دانلود کنم و یا بلند بشم و پای سیستم فرد مورد نظر بنشینم
اما با وجود ویم و ssh
شما میتونید از یک ابزار قدرتمند به ساده ترین شیوه ممکن در حالت ریموت استفاده کنید
دستور زیر فایل مورد نظر رو درون ویم شما تحت ریموت باز میکنه
1vim scp://[email protected]//media/style.css
من با این روش میتونم به راحتی فایل سیستم دیگه رو درون ویم خودم باز کنم بدون هیچ گونه نیازی به تنظیمات اضافه و یا configure
کردن ویم برای کار در شرایط ریموت
ویم پلاگین های بسیار زیادی رو داره
یکی از نگرانی هایی که همیشه در اوایل داشتم این بود که ممکنه که ویم کم و کاستی در زمینه exension
ها داشته باشه؟ اما هر بار که به دنبال چیزی میگشتم یا خود ویم اون حالت رو به صورت natural
ساپورت میکرد و یا کاملا براش افزونه ساخته بودند
یکی از نگرانی های کسانی که از ویم استفاده میکنند این هست که ویم کم و کاستی در زمینه افزونه ها داشته باشه
اما من حتی تونستم ابزاری رو پیدا کنم که کاملا هوشمند بودن vscode
رو بدون هیچ کم و کاستی به ویم می آورد
آیا با همه تفاسیر ویم مشکلاتی هم داره؟
میتونم بگم تنها مشکلی که ویم برای شما ایجاد میکنه و شما در ابتدا درون تله ویم می افتید همون learning curve
بسیار بالا بلند هست
ویم هیچ وقت تمومی نداره ویم مثل یک دریا هست که اگر مواظب نباشی خفه میشی!!
خیلی ها حتی ادعا میکنند که کسی نتونسته تمام و کمال ویم رو یاد بگیره چون این ابزار زمان بسیاز زیادی بین ما هست و توسعه اون تا الان انجام شده و به شدت گسترده شده
پس تنها هشداری رو هم که میتونم اینجا بدم این هست که مواظب باشید خودتون رو درگیر یادگیری بیش از اندازه ویم نکنید
ویم رو باید بر اساس نیاز یاد گرفت و آهسته آهسته اگر بخواهید همه چیز رو درک کنید قطعا در مدت کوتاه از این ابزار خسته میشید و دلزده
پس مواظب این مشکل باشید
سخن پایانی
ویم استفاده میکنید و یا استفاده نمیکنید مهم این هست که کدهای تمیز و ساده تولید کنید ولی این مطلب شاید بتونه به یک فردی که میخواد به ویم مهاجرت کنه کمی کمک کنه و امیدوارم که تونسته باشم مطلب رو به خوبی رسونده باشم
اگر از ویم استفاده میکنید بهترین دستوری که بیشتر از همه از اون استفاده میکنید رو درون کامنت بنویسید
اگر به فایل این مطلب نیاز داشتید میتونید از این لینک دانلود کنید