ویم (به انگلیسی: 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 میکنیم.
برای این کار دو روش پیش رو داریم.
برای کاربرانی که میخواهند به سرعت یک محیط توسعه قدرتمند برسند، بهکارگیری کانفیگهای از پیش موجود بهترین گزینه است. برخی از محبوبترین کانفیگها عبارتند از:
AstroNvim یک پیکربندی نئوویم زیبا و غنی از ویژگی است که بر کارایی و توسعهپذیری تمرکز دارد. برای نصب آن راهنمای رسمی AstroNvim را دنبال کنید.
NVChad یک کانفیگ محبوب برای نئوویم است که به کاربران اجازه میدهد تا به راحتی آن را شخصیسازی کنند. برای نصب آن راهنمای رسمی NVChad را دنبال کنید
برای تبدیل نئوویم به یک IDE، میتوانید افزونههای لازم را خودتان یک به یک نصب کنید. این روش برای کاربرانی مناسب است که میخواهند تنظیمات خود را به طور کامل کنترل کنند. برای این کار نیاز به یک مدیر افزونه دارید تا دیگر افزونه های شما را مدیریت کند. یکی از محبوب ترین مدیر بستههای موجود lazy.nvim است.
lazy.nvim:git clone https://github.com/LazyVim/starter ~/.config/nvim
.git را پاک کنید:rm -rf ~/.config/nvim/.git
nvim اجرا کنید، حالا نیاز به نصب افزونهها دارید. برخی از افزونههای پرکاربرد مانند:
nvim-lspconfignvim-cmpproject.nvimnvim-tree.luarequire("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 یک رابط کاربری گرافیکی برای نئوویم است که مانند یک پایانه(Terminal) عادی عمل میکند که ویژگیهای بیشتری برای NeoVim دارد.
Ligatures: پشتیبانی از جفتنویسی(ligatures) و شکلدهی قلم برای بهبود ظاهر کد ها.
Animated Cursor: پویانمایی اشارهگر(cursor) که موقعیت اشارهگر را قابل دنبال کردنتر میکند.
Smooth Scrolling: بالا و پایین رفتن صفحه به جای حرکت خط به خط، پیکسل به پیکسل پویانمایی میشود، که تجربه کاربری را روانتر میکند.
Blurred Floating Windows: پسزمینه پنجرههای شناور با جلوه محو پسزمینه بهتر از صفحه اصلی جدا میشوند.
Emoji Support: پشتیبانی از نمایش اموجیها حتی اگر قلم اصلی شامل آنها نباشد
نصب:
sudo pacman -S neovide
احتمالا تمام IDEهایی که تا به حال با آنها کار کردهاید برای نصب افزونه یک فروشگاه رسمی داشتهاند، ولی در نئوویم چیزی به نام فروشگاه رسمی وجود ندارد، برای پیدا کردن افزونهها میتوانید در اینترنت جستجو کرده و آموزش نصب هر افزونه را دنبال کنید و یا در منابع غیررسمی بگردید.اینها چند نمونه فهرست مردمی از افزونههای نئوویم را آوردهایم: