نسخهٔ بهبودیافته ویرایشگر متن با صفحهکلید Vi From Wikipedia, the free encyclopedia
ویم (به انگلیسی: Vim) (سرنام عبارت vi improved به معنای ویآی بهبود یافته) یک ویرایشگر متن است که توسط برام مولینار در سال ۱۹۹۱ برای رایانههای آمیگا عرضه شد. این نامگذاری به این دلیل است که ویم به عنوان یک گسترشدهندهٔ ویرایشگر ویآی توسعه داده شده بود. ویم در آغاز برای رایانههای آمیگا منتشر شده بود؛ اما پس از آن به سوی چندسکویی پیش رفت.
نویسنده(های) اصلی | برام مولینار |
---|---|
انتشار اولیه | ۱۹۹۱ نوامبر ۲ |
مخزن | |
نوشتهشده با | سی و ویماسکریپت |
پلتفرم | چندسکویی: یونیکس، لینوکس، مایکروسافت ویندوز، آیاواس، اندروید |
در دسترس به | انگلیسی، آلمانی، اسپانیایی، ایتالیایی، چینی، روسی، فارسی، فرانسوی، لهستانی[1] |
نوع | ویرایشگر متن |
مجوز | نرمافزار آزاد، بخششافزار |
وبگاه |
ویم یک پروژهٔ نرمافزاری متنباز است. مولینار، نویسندهٔ آن، برای حمایت از کودکان اوگاندا کاربران را تشویق به بخشش برای مؤسسهٔ خیریهای میکند که به آن کودکان یاری میرساند.[2]
از دلایل علاقهٔ توسعه دهندهها به ویم این است که افزونه پذیر (extensible) است و افزونههای زیادی برای ویم وجود دارد؛ مثلاً نرد تری (nerd tree) که یک نمایشگر فایل درختی است یا vim-jedi که یک افزونهٔ کامل کنندهٔ کد است.
همینطور ویم کلیدهای ترکیبی دارد که میتواند خیلی کارها را اتوماتیک کند؛ مثلاً میشود با تایپ سه حرف، پنج کلمه را پاک کرد و برای افرادی که مدت طولانی از ویم استفاده میکنند مثل توسعه دهندهها میتواند خیلی مفید باشد.
پیشدرآمد برنامه Vim برنامه Stevie (ویرایشگر ST برای VI Enthusiasts) بود که در سال ۱۹۸۷ توسط تیم تامپسون برای Atari ST[3][4] ایجاد شد و توسط تونی اندروز[3][5] و GR (فرد) والتر توسعه یافت.[6][7]
در سال ۱۹۸۸ برام مولنار بر پایه تجربه کاری خود بر روی Stevie، کار بر روی Vim را برای کامپیوتر آمیگا آغاز کرد و در سال ۱۹۹۱ اولین نسخه عمومی آن را منتشر کرد (Vim v1.14).[8][9]
در زمان اولین انتشار، نام "Vim" مخفف "Vi IMitation" بود، اما این نام در اواخر سال ۱۹۹۳ به "Vi IMproved" تغییر کرد.[10]
مانند vi، رابط Vim بر اساس منوها یا نمادها نیست، بلکه بر اساس دستورها داده شده در یک رابط کاربری متنی است. حالت GUI آن (gVim) به منظور افزودن دستورها معمول در برنامههای امروزی دارای منوها و نوارهای ابزار است. اما عملکرد اصلی و کامل آن هنوز از طریق حالت خط فرمان آن انجام میشود. ایده اصلی Vi (و با فرمت Vim) نگه داشتن انگشتان تایپیست در ردیف اصلی است و این موضوع میتواند برای یک تایپیست یک مزیت باشد.[11]
در برنامه Vim یک آموزش برای مبتدیان به نام vimtutor وجود دارد که همراه با Vim نصب میشود. اما به عنوان یک فایل اجرایی جداگانه نیز قابلیت اجرا دارد و میتوان آن را با استفاده از محیط shell اجرا کرد.[12] Vim دارای یک کتابچه راهنمای کاربران است ویژگیهای Vim و پرسشهای متداول را در اختیار کاربر قرا میدهد. این راهنما در درون برنامه Vim یا به صورت آنلاین قابل استفاده است.[13][14]
به علاوه Vim دارای یک ابزار کمک در داخل برنامه است (با استفاده از دستور :help
) که به کاربران اجازه میدهد از طریق دستورها و ویژگیها پاسخ سوالات خود را پیدا کند.
Vim دارای ۱۲ حالت ویرایش مختلف است که ۶ مورد از آنها انواع ۶ حالت اصلی هستند.[15] مهمترین حالتها عبارتند از:
insertmode
مشخص شده باشد.نویسه Vim (که Vimscript یا VimL نیز نامیده میشود)[16] زبان برنامهنویسی ساخته شده در Vim است.[17] نسخههای اولیه Vim برای تعریف جریان کنترل و عملکرد اضافه، بر اساس زبان ویرایشگر ex که در برنامه vi بود، دستوراتی را اضافه کردند. با شروع از نسخه ۷، نویسه Vim از انواع دادههای پیشرفته تر مانند لیستها و فرهنگ لغتها و شکل ساده شدهای از برنامهنویسی شی گرا پشتیبانی می کند. توابع داخلی مانندmap()
و
یک فرم اولیه از برنامهنویسی عملکردی را امکانپذیر میکنند و اسکریپت Vim از نسخه ۸٫۰ دارای لامبدا است. اسکریپت Vim بیشتر به سبک برنامهنویسی دستوری نوشته شدهاست.filter()
ماکروهای Vim میتوانند شامل دنبالهای از دستورها حالت عادی باشند، اما میتواند برای کارهای پیچیدهتر، دستورها ex یا توابع نوشته شده در نویسه Vim را فراخوانی کنند. تقریباً تمام افزونههایی (به نام پلاگین یا معمولاً نویسه) عملکرد اصلی Vim را بر عهده دارند، با نویسه Vim نوشته شدهاند. اما افزونهها میتوانند به زبانهای دیگری مانند Perl،[18] Python،[19] Lua،[20] Ruby،[21] Tcl,[22] یا راکت[23] نوشته شوند. این افزونهها را میتوان به صورت دستی یا از طریق یک مدیر پلاگین مانند Vundle, Pathogen یا Vim-Plug نصب کرد.
" This is the Hello World program in Vim script.
echo "Hello, world!"
" This is a simple while loop in Vim script.
let i = 1
while i < 5
echo "count is" i
let i += 1
endwhile
unlet i
در حالی که vi در ابتدا فقط در سیستم عاملهای یونیکس در دسترس بود، Vim به بسیاری از سیستم عاملها از جمله AmigaOS ( پلتفرم هدف اولیه)، Atari MinT، BeOS، DOS، Windows از Windows NT 3.1، OS/2، OS/390 راه یافتهاست. MorphOS, OpenVMS, QNX, RISC OS, Linux, BSD و Mac OS کلاسیک.[24] برنامه Vim در تمام نسخههای MacOS اپل ارائه میشود.[25]
نسخههای تبدیل شده مستقل Vim برای اندروید[26][27] و iOS نیز در دسترس هستند.[28]
نامهای دیگر | NVim |
---|---|
انتشار اولیه | ۱ نوامبر ۲۰۱۵[29] |
انتشار پایدار | |
مخزن | https://github.com/neovim/neovim |
نوشتهشده با | C, نویسه Vim, Lua |
سیستمعامل | ویندوز و شبهیونیکس |
مجوز | Apache-2.0 |
وبگاه |
Neovim[31] یک انشعاب از Vim با یک سری اضافات[32] است که در تلاش است تا توسعه پذیری و قابلیت نگهداری Vim را بهبود بخشد.[33] Neovim از همان نحو پیکربندی Vim پیروی میکند؛ بنابراین یک فایل پیکربندی مشابه را میتوان با هر دو ویرایشگر استفاده کرد، اگرچه تفاوتهای جزئی در جزئیات گزینهها وجود دارد.[34] اگر از ویژگیهای اضافه شده Neovim استفاده نشود، Neovim تقریباً با تمام ویژگیهای Vim سازگار است.[35]
پروژه Neovim در سال ۲۰۱۴ و با تلاش برخی از اعضای انجمن Vim انجام شد که با استفاده از بازسازی سطح بالا، به هدفهایی از جمله ارائه نویسهها و پلاگینهای قدرتمندتر و همچنین ادغام بهتر با رابطهای کاربری گرافیکی دست پیدا کنند.[36][37] این پروژه نرمافزار رایگان است و کد منبع آن در GitHub موجود است.[38]
Neovim در مارس ۲۰۱۴ جمعآوری سرمایه موفقی داشت،[39] که حداقل میتوانست از یک توسعه دهنده تمام وقت پشتیبانی کند. چندین فرانت اند در حال توسعه هستند و از قابلیتهای Neovim استفاده میکنند.[40][41][42]
ویرایشگر Neovim در بایگانی بسته شخصی[43] که توسط اوبونتو و برخی از برنامههای مدیریت بسته معمولی میزبانی میشود، موجود است[44] که نصب آن را بر روی انواع سیستمعامل ممکن میسازد.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.