چرا ویم رو به vscode ترجیح دادم(ویرایش شد)

خب بریم با صفر تا صد ویم آشنا بشیم و قراره بشیم یک مرجع ویم

این مطلب قسمت اول سری صفر تا صد ویم هست که قراره در یک سری بلند تولید بشه و برای ادامه مطالب که گم نکنید یک مخزن در گیت هاب ساختیم که تمام لینک های مطالب مرتبط به ویم در اونجا قرار داره

این هم لینک تمام سری ویم ( یادتون باشه این ریپو همیشه در حال آپدیت شدن هست)

VIM FARSI LIBRARY


شاید کمی عجیب باشه که کسی پیدا بشه که به یکی ازبهترین ادیتورهای کدنویسی دنیا خورده بگیره و بگه که مهاجرت کردم

اما من هم مثل همه آدم ها دلیل دارم برای کارهام که گفتم بهتر هست که این دلایل رو بنویسم و شاید به کس دیگری کمک کنه که بین این جنگ ادیتورها بهتر انتخاب کنه

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 بسیار بالا بلند هست

ویم هیچ وقت تمومی نداره ویم مثل یک دریا هست که اگر مواظب نباشی خفه میشی!!

خیلی ها حتی ادعا میکنند که کسی نتونسته تمام و کمال ویم رو یاد بگیره چون این ابزار زمان بسیاز زیادی بین ما هست و توسعه اون تا الان انجام شده و به شدت گسترده شده

پس تنها هشداری رو هم که میتونم اینجا بدم این هست که مواظب باشید خودتون رو درگیر یادگیری بیش از اندازه ویم نکنید

ویم رو باید بر اساس نیاز یاد گرفت و آهسته آهسته اگر بخواهید همه چیز رو درک کنید قطعا در مدت کوتاه از این ابزار خسته میشید و دلزده

پس مواظب این مشکل باشید

سخن پایانی

ویم استفاده میکنید و یا استفاده نمیکنید مهم این هست که کدهای تمیز و ساده تولید کنید ولی این مطلب شاید بتونه به یک فردی که میخواد به ویم مهاجرت کنه کمی کمک کنه و امیدوارم که تونسته باشم مطلب رو به خوبی رسونده باشم

اگر از ویم استفاده میکنید بهترین دستوری که بیشتر از همه از اون استفاده میکنید رو درون کامنت بنویسید

اگر به فایل این مطلب نیاز داشتید میتونید از این لینک دانلود کنید

نویسنده مطلب: IllustrayKing

منبع مطلب

به فکر سرمایه‌گذاری هستی؟

با هر سطحی از دانش در سریع‌ترین زمان با آموزش گام به گام، سرمایه گذاری را تجربه کن. همین الان میتونی با لینک زیر ثبت نام کنی و ۱۰ درصد تخفیف در کارمزد معاملاتی داشته باشی

ثبت نام و دریافت جایزه
نظر شما درباره این مطلب

آدرس ایمیل شما منتشر نخواهد شد.