Neovim یک ویرایشگر متن مفید و قابل توسعه در لینوکس است که میراث ویرایشگر متن Vim را ادامه میدهد. این ویژگیهای مفیدی را در عین حفظ سازگاری با ویرایشگر Vim ارائه میدهد. این مطلب به طور خلاصه موارد ضروری را که باید در مورد Neovim بدانید را نشان می دهد: پس زمینه آن، فرآیند نصب، رایج ترین افزونه ها و غیره.
Neovim در لینوکس چیست؟
Neovim فورکی از Vim (Vi بهبود یافته)، برای افزایش قابلیتهای ویرایشگر اصلی Vim طراحی شده است. به طور پیش فرض، این یک ویرایشگر متن است، با این حال، بر اساس پیکربندی خاص، میتواند مانند یک IDE نیز رفتار کند.
استفاده از Neovim
Neovim معمولا به عنوان یک ویرایشگر متن استفاده میشود. جدا از این، می توانید از Neovim برای نوشتن و ویرایش کد به طور موثر استفاده کنید. به همین دلیل، Neovim چندین افزونه مفید را برای سفارشی کردن محیط ویرایش با توجه به ترجیحات شما میپذیرد. همچنین، میتوانید فایلهای درون شبیهساز ترمینال built-in را بدون خروج از ویرایشگر متن browse و انتخاب کنید.
Neovim به شما در تکمیل کد (code completion) و بررسی خطا برای زبانهایی مانند CSS، جاوا اسکریپت و غیره کمک میکند. همچنین با سیستمهای کنترل نسخه مانند git ادغام میشود و به شما امکان میدهد کد خود را مستقیم در Neovim مدیریت کنید.
ویژگیهای کلیدی Neovim
Neovim طیف گسترده ای از ویژگی ها را ارائه می دهد تا تجربه کاربری روانی را به شما ارائه دهد. این شامل:
- API توسعهپذیر: API Neovim به هر زبانی اجازه میدهد تا extensions داشته باشد. توسعه دهندگان می توانند این API را بر اساس نیازهای خاص خود تنظیم کنند.
- پلاگینهای ریموت: پلاگینهای ریموت Neovim به شما این امکان را میدهد که از هر زبان برنامه نویسی برای گسترش Neovim بدون ایجاد تغییرات در خود Neovim استفاده کنید. این افزونهها به عنوان فرآیندهای مشترک اجرا میشوند.
- Job-Control: کنترل شغلی multitasking را در Neovim فعال میکند. در حالی که شما از Neovim استفاده میکنید، اسکریپتها می توانند چندین فرآیند را شروع و مدیریت کنند.
جدای از این ویژگیها، Neovim همچنین یک موتور تجزیه عالی، فریمورک LSP، شبیهساز ترمینال، فهرستهای پایه XDG و غیره را برای سهولت کار شما ارائه میدهد.
حالتها در Neovim
Neovim دارای 7 مود اصلی است. این حالتها برای عملکردهای مختلف طراحی شدهاند. بیایید نگاهی به حالتهای Neovim بیاندازیم:
- Normal Mode: این حالت پیش فرض زمانی است که Neovim را باز میکنید. در این حالت میتوانید به راحتی در یک فایل حرکت و دستورات را اجرا کنید. برای بازگشت به حالت عادی از هر حالت دیگری، باید کلید ESC را فشار دهید.
- Insert Mode: این حالتی است که میتوانید محتوای یک فایل متنی را درج، حذف یا تغییر دهید. برای فعال کردن حالت insert، کافی است i را فشار دهید. وقتی حالت Insert را تغییر میدهید، مکان نما به یک خط از یک مربع تبدیل میشود.
- Command-line Mode: در این حالت میتوانید از دستورات برای ویرایش فایل استفاده کنید. برای ورود به حالت Command-line از حالت نرمال، به سادگی : را فشار دهید. پس از آن میتوانید دستوری را که میخواهید اجرا کنید وارد نمائید. در نهایت یک فاصله بگذارید و کلید ENTER را بزنید تا دستور اجرا شود.
- Visual Mode: این حالت برای انتخاب متن شماست. برای جابهجایی از حالت نرمال به حالت Visual ، میتوانید v را فشار دهید. این انتخاب بر اساس کاراکتر را فعال میکند. حالت بصری انواع دیگری از انتخابها را نیز ارائه می دهد. به عنوان مثال، با فشار دادن V، انتخاب به صورت خطی و با فشار دادن CTRL+V، انتخاب به صورت بلوکی را فعال میکند.
- Select Mode: حالت Select شبیه حالت Visual است، اما در پذیرش برخی از دستورات متفاوت است. شباهت زیادی با حالت select در مایکروسافت word نیز دارد. وقتی شروع به تایپ یک کاراکتر قابل چاپ می کنید، select را حذف و حالت Insert را شروع می کند. برای ورود به حالت select از حالت normal، می توانید gh را فشار دهید.
- Ex Mode: حالت Ex شبیه حالت Command-line است. تفاوت بین آنها این است که پس از وارد کردن یک دستور، شما همچنان در حالت Ex باقی میمانند. این به ویژه زمانی مفید است که در حال اجرای دستورات پیچیده تر و کمتر تعاملی هستید. برای ورود به حالت Ex از حالت Normal، باید gQ را فشار دهید.
- Terminal Mode: برای استفاده از شبیه ساز ترمینال در محیط Neovim، می توانید به حالت ترمینال بروید. برای تغییر حالت ترمینال از حالت نرمال، می توانید :terminal را تایپ کنید. و برای شروع ارسال ورودی به ترمینال می توانید از i استفاده کنید.
به غیر از این هفت حالت اصلی، Neovim دارای 6 حالت اضافی است. آنها Operator-pending mode ، Replace mode ، Virtual Replace mode ، Insert Normal mode ، Insert Visual mode و Insert Select mode هستند.
نصب Neovim در لینوکس
میتوانید Neovim را به روشهای مختلفی نصب کنید، مانند دانلود بسته یا نصب از سورس. بیایید روند نصب را با بستهها بررسی کنیم.
Neovim را در مخازن طیف گسترده ای از توزیع های لینوکس پیدا خواهید کرد. برای نصب Neovim، در توزیعهای لینوکس مبتنی بر دبیان مانند اوبونتو، دستور زیر را در ترمینال تایپ کرده و ENTER را بزنید:
sudo apt-get install neovim
تصویر بالا مراحل نصب Neovim را نشان می دهد.
توجه: برای نصب Neovim در یک توزیع خاص لینوکس، باید از مدیر بسته خاص آن توزیع استفاده کنید. به عنوان مثال، برای نصب Neovim در توزیع های RHEL یا CentOS، از دستور زیر استفاده کنید:
sudo yum install neovim
راهنمای کاربر Neovim
Neovim انعطاف پذیری زیادی برای ایجاد یا ویرایش فایلهای متنی ارائه می دهد. در ادامه نکات ضروری است که باید هنگام استفاده از Neovim بدانید:
آموزش ایجاد یا باز کردن یک فایل متنی در Neovim
برای باز کردن یا نوشتن یک فایل با استفاده از Neovim، nvim و سپس نام فایل را تایپ کنید. برای مثال، دستور زیر را برای نوشتن فایلی به نام Sample.txt تایپ کنید:
nvim Sample.txt
آموزش نوشتن در یک فایل متنی در Neovim
حالا برای نوشتن هر چیزی در این فایل، دکمه i را فشار دهید تا حالت insert فعال شود و شروع به تایپ متن کنید. به عنوان مثال، بیایید متن زیر را در Neovim بنویسیم:
Welcome to the Neovim user guide.
This is a sample text.
parsdev.com
تصویر بالا روند نوشتن در فایل Sample.txt را نشان می دهد.
ذخیره یک فایل متنی در Neovim
پس از تایپ متن، کلید ESC را بزنید تا به حالت Normal برگردید. برای فعال کردن حالت command line، دکمه : را فشار دهید. برای ذخیره فایل Sample.txt دستور زیر را تایپ کرده و ENTER را بزنید:
:w
اگر می خواهید نام فایل را تغییر دهید، می توانید این کار را نیز انجام دهید. به عنوان مثال، برای تغییر نام فایل به EditedSample.txt ، دستور زیر را تایپ کرده و ENTER را بزنید:
:w EditedSample.txt
با این کار نام فایل به EditedSample.txt تغییر می کند.
پیمایش یک فایل متنی در Neovim
فقط با استفاده از صفحه کلید می توانید در یک فایل متنی در Neovim پیمایش کنید. به عنوان مثال، برای تنظیم شماره خط در ابتدای هر خط جدید، دستور زیر را تایپ کنید:
:set number
تصویر بالا شماره خطوط را در ابتدای هر خط جدید نشان می دهد.
اکنون میتوانید دستور حرکت به یک خط خاص را تایپ کنید. به عنوان مثال، برای رفتن به خط 2، دستور زیر را تایپ کنید:
:2
تصویر بالا نشان می دهد که مکان نما اکنون در خط 2 قرار دارد.
توجه: برای رفتن به آخرین خط یک فایل، از دستور زیر استفاده کنید:
:$
آموزش کپی و پیست در یک فایل متنی Neovim
برای کپی بخشی از فایل متنی در Neovim، ابتدا آن قسمت را در حالت normal انتخاب کنید. سپس دکمه y را فشار دهید تا متن انتخاب شده در کلیپبورد کپی شود. پس از آن، به خطی بروید که میخواهید متنی را که به تازگی کپی کردهاید جایگذاری کنید. در نهایت برای paste متن کپی شده، p را فشار دهید.
از تصویر بالا می بینید که متن خط 2 در خط 5 کپی و paste شده است.
توجه: برای Cut و paste یک متن، ابتدا باید متن را انتخاب کنید، کلید ترکیبی dd را فشار دهید تا متن cut شود، به محلی که میخواهید آن را paste کنید بروید و در آخر برای پیست متن، p را فشار دهید.
آموزش حذف مطالب از یک فایل متنی
برای حذف یک خط خاص از یک متن در Neovim، در حالت Normal به آن خط خاص بروید. سپس دستور زیر را تایپ کنید تا آن خط حذف شود:
:d
در غیر این صورت، استفاده از کلید ترکیبی dd باعث حذف خط فعلی می شود.
بیایید خط 4 را که به تازگی کپی و پیست شده است حذف کنیم.
لغو (Undo) یک تغییر
برای لغو تغییری که در متن ایجاد کرده اید، به سادگی کلید u را فشار دهید. به عنوان مثال، برای لغو عمل حذفی که در خط 4 انجام داده ایم، کلید u را فشار دهید.
توجه: اگر نیاز به Undo چند کار دارید، می توانید کلید u را به طور مکرر فشار دهید تا این کار را انجام دهید.
هایلایت کردن متن
برای هایلایت کردن یک متن در Neovim، ابتدا دکمه v را فشار دهید. این حالت visual را فعال میکند. سپس می توانید متنی را که می خواهید هایلایت کنید با استفاده از کلیدهای جهت دار انتخاب کنید.
تصویر بالا نشان می دهد که خطوط 2 و 3 در متن برجسته شده اند.
جستجوی یک فایل متنی در Neovim
برای جستجوی یک رشته در یک فایل متنی با استفاده از Neovim، میتوانید از / (Backslash) و سپس رشته مورد نظر در حالت normal استفاده کنید. به عنوان مثال، برای جستجوی رشته sample در فایل Sample.txt ما، می توانید از سینتکس زیر استفاده کنید:
/sample
نکته: در حالی که /string وقوع رشته را از موقعیت مکان نما فعلی تا انتهای فایل جستجو می کند، ?string تا ابتدای فایل را جستجو می کند. همچنین، اگر چندین مورد منطبق در متن یافت شد، میتوانید از n و SHIFT+n برای رفتن به تطابق بعدی و قبلی استفاده کنید.
آموزش ذخیره و خروج از یک فایل متنی Neovim
برای ذخیره تغییرات در فایل متنی یا حتی برای خروج از رابط Neovim بدون ذخیره، اول از همه باید در حالت Normal باشید. دکمه ESC را فشار دهید تا به حالت نرمال بروید.
اکنون چندین گزینه برای خروج از رابط Neovim دارید. برای ذخیره تغییرات بدون خروج از رابط Neovim، الگوی کلید :w را تایپ کرده و ENTER را بزنید.
برای ذخیره فایل و خروج از رابط Neovim به طور همزمان، کلیدهای :wq را تایپ کرده و ENTER را بزنید.
برای خروج از فایل بدون ذخیره و خروج از رابط Neovim نیز از :q استفاده کنید! کلید ترکیب شده و کلید ENTER را فشار دهید.
پلاگین های مفید Neovim
یکی از جنبه های مهم Neovim این است که از طیف گسترده ای از افزونه های مفید پشتیبانی میکند. بیایید با چند افزونه پرکاربرد آشنا شویم:
مدیر پلاگین: Packer
Packer یک مدیر افزونه مفید برای Neovim است که به شما امکان میدهد افزونههای مورد نیاز خود را به راحتی نصب و مدیریت کنید. شما میتوانید مشخص کنید که کدام پلاگین را باید نصب کنید و Packer از وابستگیها مراقبت می کند. همچنین، قابل توسعه است، بنابراین می توانید عملکردهای سفارشی را با توجه به نیاز خود اضافه کنید. علاوه بر این، Packer از بسته های بومی استفاده می کند و از وابستگی های Luarockes پشتیبانی می کند.
Telescope
برای جستجو و پیمایش فایلها، بافرها و غیره می توانید از پلاگین تلسکوپ استفاده کنید. تلسکوپ یک فایندر فازی و انتخاب کننده فایل کارآمد برای Neovim است. یک ابزار مفید است به خصوص اگر با یک پروژه بزرگ کار می کنید و نیاز دارید کد خود را به طور موثر پیمایش کنید.
LazyVim
برای سفارشی سازی و گسترش پیکربندی خود، می توانید از افزونه lazyVim استفاده کنید. LazyVim یک راهاندازی Neovim است که هم انعطافپذیری برای ایجاد پیکربندی شما و هم استفاده از تنظیمات از پیش پیکربندیشده را فوری ارائه میدهد. شما می توانید از LazyVim برای تبدیل رابط Neovim خود به یک IDE سفارشی شده استفاده کنید.
Tree-sitter
Tree-sitter یک ابزار parser-generator است. همچنین به عنوان یک کتابخانه تجزیه افزایشی عمل میکند که می تواند یک syntax tree کار برای یک فایل سورس ایجاد و آن را در هنگام به روز رسانی فایل به روز کند.
خرید سرور مجازی در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.
کلیدهای میانبر برای Neovim
در اینجا مروری بر برخی از میانبرهای صفحه کلید از وب سایت Neovim است که باید بدانید:
حالت Normal
توضیحات | میانبر |
---|---|
مکان نما را به سمت چپ حرکت میدهد | h |
مکان نما را به سمت راست حرکت میدهد | l |
مکان نما را به سمت بالا حرکت میدهد | k |
مکان نما را به سمت پایین حرکت میدهد | j |
به ابتدای یک خط حرکت میکند | 0 |
به انتهای یک خط حرکت میکند | $ |
یک کلمه جلو میرود | w |
یک کلمه عقب میرود | b |
به بالای فایل میرود | gg |
به پایین فایل میرود | G |
حذف یک خط | dd |
یک خط را کپی میکند | yy |
یک خط را پیست میکند | p |
حالت Insert
توضیحات | میانبر |
---|---|
وارد حالت insert میشود | i |
کاراکتر را از زیر مکاننما وارد میکند | CTRL-E |
کاراکتر قبل از مکاننما را حذف میکند | CTRL-H or BS |
کلمه قبل از مکاننما را حذف میکند | CTRL-W |
یک دستور را در حالت Normal اجرا و به حالت insert برمیگردد | CTRL-O |
حالت Visual
توضیحات | میانبر |
---|---|
مکان نما را به سمت چپ حرکت میدهد | v |
مکان نما را به سمت راست حرکت میدهد | V |
مکان نما را به سمت بالا حرکت میدهد | CTRL-V |
مکان نما را به سمت پایین حرکت میدهد | aw |
به ابتدای یک خط حرکت میکند | as |
حالت Command-line
توضیحات | میانبر |
---|---|
مکان نما را به سمت چپ حرکت میدهد | :w |
مکان نما را به سمت راست حرکت میدهد | :wq |
مکان نما را به سمت بالا حرکت میدهد | :xit |
مکان نما را به سمت پایین حرکت میدهد | / |
به ابتدای یک خط حرکت میکند | ? |
به انتهای یک خط حرکت میکند | u |
یک کلمه جلو میرود | CTRL-r |
محدودیتهای Neovim
Neovim یک ویرایشگر متن فوق العاده است. با این حال، برخی از مسائل وجود دارد که ممکن است هنگام استفاده از Neovim در نظر بگیرید. برای مثال، پیکربندی Neovim به شما آزادی سفارشیسازی میدهد، اما باعث حواسپرتی نیز میشود. همچنین، گاهی اوقات مدیریت وابستگیهای افزونهها ممکن است منجر به مشکلات وابستگی شود. علاوه بر این، با تعداد زیادی افزونه، ممکن است مشکلات عملکرد کند را نیز تجربه کنید.
نتیجه
جنبه های کلی Neovim در این مطلب نشان داده شده است. که شامل استفاده اساسی از Neovim، حالتهای مختلف آن و برخی از افزونه های مفید است. این مطلب وبلاگ را دنبال و ویژگیها را در کنار هم امتحان کنید تا تجربه ای دست اول از Neovim داشته باشید. امیدواریم این مقاله به شما کمک کند تا به راحتی اصول Neovim را درک کنید.
نظرتون برامون مهمه شما اولین نظر رو بنویسید