برنامه نویسی

چگونه یک مود صفحه کلید من را به سمت VIM سوق داد (و چرا من هرگز به عقب نرفتم)

حدود چهار سال پیش ، هنگامی که من تازه با برنامه نویسی و توسعه وب شروع کردم ، به سرعت فهمیدم که حرکت انگشتانم از ردیف خانه برای فشار دادن کلیدهای پیکان بسیار ناکارآمد و آزار دهنده است.

من فکر کردم ، “اگر فقط می توانستم کلیدهای پیکان را با انگشت شست خود فشار دهم ، این بهتر خواهد بود.” در همین زمان ، من همچنین شروع به کار با الکترونیک کردم ، بنابراین تصمیم گرفتم صفحه کلید خود را هک کنم تا کلیدهای پیکان را به انگشت شست خود نزدیک کنم.

هک کردن صفحه کلید من

وقتی صفحه کلید خود را باز کردم ، با یک پیچ و خم از آثار مدار روی یک ورق غشایی مورد استقبال قرار گرفتم.

کیبورد داخلی

من فکر کردم ، “مرد ، این خیلی پیچیده است ، و من واقعاً نمی خواهم صفحه کلید خود را بشکنم.” من وقتی ایده ای به من زد ، تسلیم شدم – من از برگه غشایی عکس گرفتم و خطوط متصل به کلیدهای پیکان را در یک ویرایشگر عکس ردیابی کردم. هنگامی که فهمیدم کدام پین ها کلیدهای فلش را برانگیخته است ، آنها را با یک کلیپ تمساح آزمایش کردم تا مطمئن شوم که آنها کار می کنند.

اتصال سیم به پین ​​ها

روبان در پین های صفحه کلید درج شده است

همانطور که در تصویر مشاهده می کنید ، یک نوار فلزی که روی پین ها پیچ شده است وجود دارد تا مدار غشایی به صفحه کنترل کننده متصل شود ، بنابراین لحیم کاری گزینه ای نبود. خوشبختانه ، من مقداری فویل آلومینیومی در اطراف آن دراز کشیده بودم ، بنابراین چند روبان انعطاف پذیر درست کردم ، سیم های وصل شده به آنها و بعد از آزمایش و خطا ، موفق شدم آنها را روی پین های راست قرار دهم. سپس پوشش فلزی را محکم روی ورق غشایی پیچیدم و همه چیز را با چسب داغ ایمن کردم.

سیم های ایمن با چسب داغ در کنترلر صفحه کلید

اضافه کردن کلیدهای فلش

من چهار سوئیچ فشار گرفتم و آنها را به سمت صفحه کلید خود چسباندم که در آن شست های من می توانست به آن برسد. سپس ، من چهار صفحه کلید را از صفحه کلید لپ تاپ شکسته خود گرفتم و آنها را در بالای سوئیچ ها چرت زد.

نقشه برداری نهایی به این شکل بود:

[Home] [PgUp] [PgDn] [End]
[ ←  ] [ ↑  ] [ ↓  ] [ → ]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

کلیدهای پیکان انگشت شست هک شده

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

تعویض صفحه کلید من و کشف VIM

چند ماه بعد ، من مجبور شدم صفحه کلید خود را جایگزین کنم زیرا کلیدهای سفت در صفحه کلید قدیمی من (که به اعتقاد من یکی از معلمان من در سال 2010 خریداری کرده بود) انگشتان من را درد می کردند. متأسفانه ، اصلاح کردن گزینه جدید گزینه ای نبود و من واقعاً کلیدهای پیکان انگشت شست را از دست دادم.

بنابراین ، من جستجو کردم (با انگلیسی آن زمان که آن زمان شکسته است ، که هنوز هم در مورد TBH 🙄 است):

تایپ کردن کلیدهای فلش در حالی که کد نویسی واقعاً خسته کننده است

این زمانی است که من به یک نظر Reddit که چیزی شبیه به آن گفته بود ، گیر افتادم.

به همین دلیل من هر زمان که VScode را نصب می کنم ، افزونه VIM را نصب می کنم.

نکته جانبی سریع: کلمه “Vim” به نظر می رسید آشنا است. دو هفته قبل ، من از ویندوز به اوبونتو تغییر کرده بودم و ضمن نصب برخی از برنامه ها در ترمینال (به دنبال یک راهنما) ، یک فایل متنی را با “VIM” که در نوار عنوان ترمینال نوشته شده بود باز کرد. من نمی توانستم بفهمم چگونه آن را ببندم ، بنابراین من کل ترمینال را بستم.

من مستقیماً به یوتیوب رفتم تا در مورد VIM اطلاعات بیشتری کسب کنم و بعد از تماشای برخی از فیلم ها ، فکر کردم ، “این یک تغییر دهنده بازی است! چگونه من از این موضوع نمی دانستم؟ ” من در 2-3 روز اصول اولیه را برداشتم و پس از آن ، دیگر بازگشت.

تغییر به VIM از VScode

من خودم را متقاعد کرده بودم که برای کدگذاری به VIM احتیاج دارم. اگر کسی مرا مجبور کرده بود از هر چیز دیگری استفاده کنم ، من برنامه نویسی را ترک می کردم و کشاورز می شدم. من افزونه VIM را در VScode امتحان کردم ، اما به اندازه VIM براق و پاسخگو نبود. به علاوه ، با VIM ، من هرگز مجبور نبودم ترمینال خود را ترک کنم!

فقط یک مشکل وجود داشت – تعیین خودکار بودن و LSP به عنوان یک مبتدی کامل یک کابوس بود. من به سختی JavaScript را می شناختم ، چه رسد به Vimscript. پس از آموزش ها ، من را با یک مجموعه کار تا حدودی کار کرد ، اما این یک دسته از اشکالات آزار دهنده داشت. من همه آنها را به یاد نمی آورم ، اما یکی این بود که اگر چرخ ماوس را در حالت درج پیمایش می کردم ، به طور تصادفی یک دسته از [[As or something weird like that.

Trying to fix these bugs by Googling and watching random tutorials became so overwhelming that I almost started crying out to Allah (not kidding!) because I really didn’t want to go back to VSCode.

Finally, I found Ben Awad’s How to Configure Vim like VSCode video, switched to Neovim, and followed the tutorial. That solved a lot of my issues.

https://www.youtube.com/watch؟v=gnuporseikq

وضعیت فعلی

از آن زمان ، من پیکربندی خود را زیاد پیچیدم ، از Vimscript به Lua تغییر کردم و تنظیمات خود را واقعاً مال من کردم. من از VIM برای کار استفاده می کنم (بدیهی است) ، یادداشت برداری ، انجام تکالیف با Markdown و Katex و هرگونه ویرایش سریع و کثیف متن.

تصویر VIM من در سال 2023

من هنوز در سال 2025 از افزونه قدیمی COC استفاده می کنم و هنوز به LSP های مبتنی بر LUA تغییر نکرده ام زیرا برخی از افزونه هایی که به آنها اعتماد می کنم (مانند چک-اسپل ، COC-Explorer و COC) کامل ندارند گزینه های دیگر در اوایل سال 2023 ، من بیش از یک هفته تلاش کردم تا به افزونه های مدرن تغییر دهم ، اما من به یک دسته از مواردی که با COC در آنجا نبودند ، دویدم:

  1. به من اجازه نمی دهد به خارج از فهرست ریشه بروم.
  2. هر وقت پرونده ای را در خارج از ریشه پروژه باز می کنم ، به مسیر جدید واکنش نشان نمی دهد.
  3. من به شدت به کلید های افزونه قبلی خود عادت کرده ام.
  1. همه آنلاین با استفاده از چکر طلسم داخلی Neovim توصیه می کنند ، اما کلمات مانند آن را برجسته می کند fetchUsers وت MAX_COUNT به عنوان نادرست
  2. این اصلاحات سریع برای کلمات غلط املایی در نام متغیر یا عملکرد با کنوانسیون های مختلف نامگذاری ارائه نمی دهد.
  1. من خیلی عادت کرده ام که از ultisnips با اسنپ های COC استفاده کنم.
  2. در حال حاضر بیشتر افراد از Luasnip استفاده می کنند که نیاز به تعریف قطعه در LUA دارد. از نظر من ، برای آنچه در آن زمان به آن نیاز داشتم ، غیر ضروری بود.
  3. Ultisnips بسیار ساده تر است ، زیرا قطعه ها در یک نحو آسان برای خواندن تعریف شده و در یک فایل متنی ساده ذخیره می شوند.

من می دانم که این مسائل می تواند برطرف شود ، اما من هنوز وقت آن را برای تغییر نداشته ام.

با نگاهی به عقب ، کشف ویم خیلی زود در سفر برنامه نویسی من یکی از بهترین اتفاقاتی بود که تاکنون اتفاق افتاده است. من از سازندگان VI ، VIM و همکاران Neovim بخاطر کارهای شگفت انگیز خود بسیار سپاسگزارم.

با تشکر از شما برای خواندن این تا کنون – امیدوارم که آن را جالب پیدا کنید! من دوست دارم افکار شما را بشنوم ، بنابراین احساس راحتی کنید که نظر دهید یا هر گونه سؤال بپرسید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا