ویم

معرفی

ویم (به انگلیسی: Vim) (سرنام عبارت vi improved به معنای وی‌آی بهبود یافته) یک ویرایشگر متن است که توسط برام مولینار در سال ۱۹۹۱ برای رایانه‌های آمیگا عرضه شد. این نام‌گذاری به این دلیل است که ویم به عنوان یک گسترش‌دهندهٔ ویرایشگر وی‌آی توسعه داده شده بود. ویم در آغاز برای رایانه‌های آمیگا منتشر شده بود؛ اما پس از آن به سوی چندسکویی پیش رفت.

ویم یک پروژهٔ نرم‌افزاری متن‌باز است. مولینار، نویسندهٔ آن، برای حمایت از کودکان اوگاندا کاربران را تشویق به بخشش برای مؤسسهٔ خیریه‌ای می‌کند که به آن کودکان یاری می‌رساند.

از دلایل علاقهٔ توسعه دهنده‌ها به ویم این است که افزونه پذیر (extensible) است و افزونه‌های زیادی برای ویم وجود دارد؛ مثلاً نردتری (NERDTree) که یک نمایشگر فایل درختی است یا vim-jedi که یک افزونهٔ کامل کنندهٔ کد است.

همین‌طور ویم کلیدهای ترکیبی دارد که می‌تواند خیلی کارها را اتوماتیک کند؛ مثلاً می‌شود با تایپ سه حرف، پنج کلمه را پاک کرد و برای افرادی که مدت طولانی از ویم استفاده می‌کنند مثل توسعه‌دهنده‌ها می‌تواند خیلی مفید باشد.

تاریخچه

پیش‌درآمد برنامه Vim برنامه Stevie (ویرایشگر ST برای VI Enthusiasts) بود که در سال ۱۹۸۷ توسط تیم تامپسون برای Atari ST ایجاد شد و توسط تونی اندروز و GR (فرد) والتر توسعه یافت.

در سال ۱۹۸۸ برام مولنار بر پایه تجربه کاری خود بر روی Stevie، کار بر روی Vim را برای کامپیوتر آمیگا آغاز کرد و در سال ۱۹۹۱ اولین نسخه عمومی آن را منتشر کرد (Vim v1.14).

در زمان اولین انتشار، نام "Vim" مخفف "Vi IMitation" بود، اما این نام در اواخر سال ۱۹۹۳ به "Vi IMproved" تغییر کرد.

نصب

برای نصب در پارچ از این دستور استفاده کنید:

sudo pacman -S vim

آموزش

برای آموزش کار با ویم از vimtutor که به همراه ویم نصب شده است استفاده کنید

vimtutor

نئوویم

معرفی

نئوویم یک انشعاب از ویم با یک سری اضافات است که در تلاش است تا توسعه پذیری و قابلیت نگهداری ویم را بهبود بخشد. نئوویم از همان نحو پیکربندی ویم پیروی می‌کند؛ بنابراین یک فایل پیکربندی مشابه را می‌توان با هر دو ویرایشگر استفاده کرد، اگرچه تفاوت‌های جزئی در جزئیات گزینه‌ها وجود دارد. اگر از ویژگی‌های اضافه شده نئوویم استفاده نشود، نئوویم تقریباً با تمام ویژگی‌های Vim سازگار است.

پروژهٔ نئوویم در سال ۲۰۱۴ و با تلاش برخی از اعضای انجمن ویم انجام شد که با استفاده از بازسازی سطح بالا، به هدف‌هایی از جمله ارائه نویسه‌ها و پلاگین‌های قدرتمندتر و همچنین ادغام بهتر با رابط‌های کاربری گرافیکی دست پیدا کنند. این پروژه نرم‌افزار آزاد است و کد منبع آن در GitHub موجود است. (مخزن در گیت‌هاب: https://github.com/neovim/neovim)

نصب

نئوویم به راحتی با دستور زیر قابل نصب است:

sudo pacman -S neovim

نئوویم با نام neovim نصب می‌شود ولی با دستور nvim می‌توان آن را اجرا نمود

تبدیل نئوویم به IDE

نئوویم به تنهایی ابزار های لازم برای توسعه‌دهندگان را ندارد، به همین دلیل با نصب افزونه، آن را مشابه IDE میکنیم.
برای این کار دو روش پیش رو داریم.

1. کانفیگ‌های موجود

برای کاربرانی که می‌خواهند به سرعت یک محیط توسعه قدرتمند برسند، به‌کارگیری کانفیگ‌های از پیش موجود بهترین گزینه است. برخی از محبوب‌ترین کانفیگ‌ها عبارتند از:

AstroNvim

AstroNvim یک پیکربندی نئوویم زیبا و غنی از ویژگی است که بر کارایی و توسعه‌پذیری تمرکز دارد. برای نصب آن راهنمای رسمی AstroNvim را دنبال کنید.

NVChad

NVChad یک کانفیگ محبوب برای نئوویم است که به کاربران اجازه می‌دهد تا به راحتی آن را شخصی‌سازی کنند. برای نصب آن راهنمای رسمی NVChad را دنبال کنید

2. تنظیم از صفر

برای تبدیل نئوویم به یک IDE، می‌توانید افزونه‌های لازم را خودتان یک به یک نصب کنید. این روش برای کاربرانی مناسب است که می‌خواهند تنظیمات خود را به طور کامل کنترل کنند. برای این کار نیاز به یک مدیر افزونه دارید تا دیگر افزونه های شما را مدیریت کند. یکی از محبوب ترین مدیر بسته‌های موجود lazy.nvim است.

نصب مدیر افزونه lazy.nvim:

  1. برای نصب lazy.nvim آن را با گیت دریافت کنید:
git clone https://github.com/LazyVim/starter ~/.config/nvim
  1. پس از نصب، پوشه .git را پاک کنید:
rm -rf ~/.config/nvim/.git
  1. می‌توانید آن را با دستور nvim اجرا کنید، حالا نیاز به نصب افزونه‌ها دارید. برخی از افزونه‌های پرکاربرد مانند:
    • LSP: nvim-lspconfig
    • تکمیل خودکار: nvim-cmp
    • مدیر پروژه: project.nvim
    • مدیر فایل: nvim-tree.lua

نمونه کانفیگ:

require("lazy").setup({
  {
    "folke/tokyonight.nvim", -- Theme
    lazy = false,
    priority = 1000,
    config = function()
      vim.cmd([[colorscheme tokyonight]])
    end,
  },
  "neovim/nvim-lspconfig", -- LSP
  "hrsh7th/nvim-cmp",      -- Autocompletion
  "nvim-tree/nvim-tree.lua", -- File explorer
  "mbbill/undotree",       -- Undo history
})
})

برای نصب با این روش میتوانید راهنمای رسمی lazy.nvim را دنبال کنید.

NeoVide

NeoVide یک رابط کاربری گرافیکی برای نئوویم است که مانند یک پایانه(Terminal) عادی عمل میکند که ویژگی‌های بیشتری برای NeoVim دارد.

ویژگی‌ها

نصب:

sudo pacman -S neovide

فروشگاه افزونه

احتمالا تمام IDEهایی که تا به حال با آنها کار کرده‌اید برای نصب افزونه یک فروشگاه رسمی داشته‌اند، ولی در نئوویم چیزی به نام فروشگاه رسمی وجود ندارد، برای پیدا کردن افزونه‌ها میتوانید در اینترنت جستجو کرده و آموزش نصب هر افزونه را دنبال کنید و یا در منابع غیررسمی بگردید.اینها چند نمونه فهرست مردمی از افزونه‌های نئوویم را آورده‌ایم: