ویم

از ویکی‌پدیا، دانشنامهٔ آزاد
Vim
Vim logo
Vim-(logiciel)-console.png
ویم در حال اجرا در یک برابرساز ترمینال
نویسنده(های)
اصلی
برام مولینار
انتشار ابتدایی۱۹۹۱ نوامبر ۲؛ ۳۰ سال پیش (۲-۱۱-۱۹۹۱)
مخزن
نوشته‌شده باسی و ویم‌اسکریپت
بن‌سازه رایانشچندسکویی: یونیکس، لینوکس، مایکروسافت ویندوز، آی‌اواس، اندروید
در دسترس بهانگلیسی، آلمانی، اسپانیایی، ایتالیایی، چینی، روسی، فارسی، فرانسوی، لهستانی[۱]
گونهویرایشگر متن
پروانهنرم‌افزار آزاد، بخشش‌افزار
وبگاه

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

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

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

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

تاریخچه[ویرایش]

پیش درآمد برنامه Vim برنامه Stevie (ویرایشگر ST برای VI Enthusiasts) بود که در سال 1987 توسط تیم تامپسون برای Atari ST [۳] [۴] ایجاد شد و توسط تونی اندروز [۳] [۵] و GR (فرد) والتر توسعه یافت. [۶] [۷]

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

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

رابط کاربری[ویرایش]

gVim نسخه 7.3

مانند vi ، رابط Vim بر اساس منوها یا نمادها نیست، بلکه بر اساس دستورات داده شده در یک رابط کاربری متنی است . حالت GUI آن (gVim) به منظور افزودن دستورات معمول در برنامه های امروزی دارای منوها و نوارهای ابزار است.اما عملکرد اصلیو کامل آن هنوز از طریق حالت خط فرمان آن انجام می شود. ایده اصلی Vi (و با فرمت Vim) نگه داشتن انگشتان تایپیست در ردیف اصلی است و این موضوع می تواند برای یک تایپیست یک مزیت باشد. [۱۱]

در برنامه Vim یک آموزش برای مبتدیان به نام vimtutor وجود دارد که همراه با Vim نصب می‌شود. اما به عنوان یک فایل اجرایی جداگانه نیز فابلیت اجرا دارد و می‌توان آن را با استفاده از محیط shell اجرا کرد. [۱۲] Vim دارای یک کتابچه راهنمای کاربران است ویژگی‌های Vim و پرسش‌های متداول را در اختیار کاربر قرا میدهد. این راهنما در درون برنامه Vim یا به صورت آنلاین قابل استفاده است. [۱۳] [۱۴]

به علاوه Vim دارای یک ابزار کمک در داخل برنامه است (با استفاده از دستور :help ) که به کاربران اجازه می دهد از طریق دستورات و ویژگی ها پاسخ سوالات خود را پیدا کند.

حالت ها[ویرایش]

Vim دارای 12 حالت ویرایش مختلف است که 6 مورد از آنها انواع 6 حالت اصلی هستند. [۱۵] مهمترین حالت ها عبارتند از:

  • حالت عادی - برای دستورات ویرایشگر استفاده می شود. این حالت، حالت پیش فرض برنامه است، مگر اینکه گزینه insertmode مشخص شده باشد.
  • حالت بصری - شبیه حالت عادی، اما برای برجسته سازی برخی از مناطق متن استفاده می شود. دستورات عادی را می توان در ناحیه برجسته شده اجرا کرد، به عنوان مثال برای جابجایی یا ویرایش یک متن انتخاب شده.
  • حالت درج - شبیه به ویرایش در اکثر ویرایشگرهای مدرن. در این حالت می توان با متن را درج کرد یا تغییر داد.
  • حالت خط فرمان - در پایین پنجره Vim از خط فرمان تک خطی به عنوان ورودی بهره می برد. دستورات عادی ( که با : شروع می شوند) و برخی کلیدهای دیگر این حالت را فعال می کنند که برای اقدامات خاص (از جمله جستجوی الگو و فرمان فیلتر) به کار میرود.

نویسه Vim[ویرایش]

نویسه Vim (که Vimscript یا VimL نیز نامیده می شود) [۱۶] زبان برنامه نویسی ساخته شده در Vim است. [۱۷] نسخه های اولیه Vim برای تعریف جریان کنترل و عملکرد اضافه، بر اساس زبان ویرایشگر ex که در برنامه vi بود، دستوراتی را اضافه کردند. با شروع از نسخه 7، نویسه Vim از انواع داده های پیشرفته تر مانند لیست ها و فرهنگ لغت ها و شکل ساده شده ای از برنامه نویسی شی گرا پشتیبانی می کند. توابع داخلی مانندmap() وfilter()یک فرم اولیه از برنامه نویسی عملکردی را امکان پذیر می کنند و اسکریپت Vim از نسخه 8.0 دارای لامبدا است. اسکریپت Vim بیشتر به سبک برنامه نویسی دستوری نوشته شده است.

ماکروهای Vim می‌توانند شامل دنباله‌ای از دستورات حالت عادی باشند، اما می‌تواند برای کارهای پیچیده‌تر، دستورات ex یا توابع نوشته شده در نویسه Vim را فراخوانی کنند. تقریباً تمام افزونه هایی (به نام پلاگین یا معمولاً نویسه) عملکرد اصلی Vim را بر عهده دارند، با نویسه Vim نوشته شده‌اند. اما افزونه‌ها می‌توانند به زبان‌های دیگری مانند Perl[۱۸] ، Python [۱۹] ، Lua [۲۰] ، Ruby[۲۱] ، Tcl، [۲۲] یا راکت[۲۳] نوشته شوند. این افزونه ها را می توان به صورت دستی یا از طریق یک مدیر پلاگین مانند 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 کلاسیک . [۲۴] برنامه Vim در تمام نسخه های MacOS اپل ارائه می شود. [۲۵]

نسخه های تبدیل شده مستقل Vim برای اندروید [۲۶] [۲۷] و iOS نیز در دسترس هستند. [۲۸]

Neovim[ویرایش]

Neovim
Neovim-logo.svg
نام‌های دیگرNVim
انتشار ابتدایی۱ نوامبر ۲۰۱۵؛ ۶ سال پیش (۲۰۱۵-۱۱-01)[۲۹]
انتشار پایدار
0.6.1[۳۰] ویرایش در ویکی‌داده
۳۱ دسامبر ۲۰۲۱؛ ۴ ماه پیش (۳۱ دسامبر ۲۰۲۱)[۲۹]
مخزن
نوشته‌شده باC, نویسه Vim, Lua
سیستم‌عامل ویندوز و شبه‌یونیکس
پروانهApache-2.0
وبگاه

Neovim [۳۱] یک انشعاب از Vim با یک سری اضافات [۳۲] است که در تلاش است تا توسعه پذیری و قابلیت نگهداری Vim را بهبود بخشد[۳۳]. Neovim از همان نحو پیکربندی Vim پیروی می کند. بنابراین یک فایل پیکربندی مشابه را می توان با هر دو ویرایشگر استفاده کرد، اگرچه تفاوت های جزئی در جزئیات گزینه ها وجود دارد[۳۴]. اگر از ویژگی های اضافه شده Neovim استفاده نشود، Neovim تقریبا با تمام ویژگی های Vim سازگار است. [۳۵]

پروژه Neovim در سال 2014 و با تلاش برخی از اعضای انجمن Vim انجام شد که با استفاده از بازسازی سطح بالا، به هدف هایی از جمله ارائه نویسه ها و پلاگین های قدرتمدتر و همچنین ادغام بهتر با رابط های کاربری گرافیکی دست پیدا کنند. [۳۶] [۳۷] این پروژه نرم افزار رایگان است و کد منبع آن در GitHub موجود است. [۳۸]

Neovim در مارس 2014 جمع آوری سرمایه موفقی داشت، [۳۹] که حداقل میتوانست از یک توسعه دهنده تمام وقت پشتیبانی کند. چندین فرانت اند در حال توسعه هستند و از قابلیت های Neovim استفاده می کنند. [۴۰] [۴۱] [۴۲]

ویرایشگر Neovim در بایگانی بسته شخصی [۴۳] که توسط اوبونتو و برخی از برنامه های مدیریت بسته معمولی میزبانی می‌شود، موجود است[۴۴] که نصب آن را بر روی انواع سیستم‌عامل ممکن می‌سازد.

جستارهای وابسته[ویرایش]

پیوند به بیرون[ویرایش]

منابع[ویرایش]

  1. "Vim in non-English languages". Retrieved 14 December 2010.
  2. keimasi (۱۵ اردیبهشت ۱۳۹۱). «راهنمای استفاده از ویرایشگر VI». LinuxReview. بایگانی‌شده از اصلی در ۲۰ سپتامبر ۲۰۱۲. دریافت‌شده در ۱۶ اردیبهشت ۱۳۹۱.
  3. ۳٫۰ ۳٫۱ Thompson, Tim (2000-03-26). "Stevie". Retrieved 2010-12-27.
  4. .
  5. .
  6. Vim (20 January 2015). "intro.txt". Vim Help. Vim. Archived from the original on 9 July 2016. Retrieved 9 July 2016.
  7. "vim(1)". die.net. Vim. 11 April 2006. Archived from the original on 9 July 2016. Retrieved 9 July 2016. Vim is based on Stevie, worked on by: Tim Thompson, Tony Andrews and G.R. (Fred) Walter. Although hardly any of the original code remains.
  8. "The continuing story of Vim" (PDF).
  9. "The history of Vim – Jovica Ilic". 5 June 2014. Retrieved 25 January 2020.
  10. "VILE (Vi Like Emacs) – Frequently Asked Questions (FAQ)". Retrieved 7 September 2019.
  11. Empty citation (help)
  12. Moolenaar, Bram (3 November 2010). "Vim documentation: usr_01". Retrieved 28 August 2019.
  13. Vim help files at vimhelp.org
  14. Empty citation (help)
  15. Moolenaar, Bram (8 December 2010). "Vim documentation: intro". vimdoc.sourceforge.net. Archived from the original on 2019-08-27. Retrieved 2019-08-28.
  16. Klein, Benjamin. "The VimL Primer: Edit Like a Pro with Vim Plugins and Scripts by Benjamin Klein | The Pragmatic Bookshelf". Archived from the original on January 25, 2020. Retrieved 25 January 2020.
  17. "Vim documentation: usr_41". vimhelp.org.
  18. Verdoolaege, Sven; Gerassimof, Matt. "Vim documentation: if_perl". Retrieved 2019-08-27.
  19. Moore, Paul. "Vim documentation: if_pyth". Retrieved 2019-08-27.
  20. Carvalho, Luis. "Vim documentation: if_lua". Retrieved 2019-08-27.
  21. Maeda, Shugo. "Vim documentation: if_ruby". Retrieved 2019-08-27.
  22. Wilken, Ingo. "Vim documentation: if_tcl". Retrieved 2019-08-27.
  23. Khorev, Sergey. "Vim documentation: if_mzsch". Retrieved 2019-08-27.
  24. ":help sys-file-list" "Vim Online: Downloads". Retrieved 2007-01-07.
  25. "Mac OS X Manual Page For vim(1)". developer.apple.com. Apple Inc. Retrieved 2010-01-12.
  26. "VimTouch, the development has stalled on this app". GitHub. Retrieved 2015-08-09.
  27. "DroidVim, under active development". GitHub. Retrieved 2017-03-05.
  28. "Vim – Applidium, mobile agency in Paris". Archived from the original on 2012-01-20. Retrieved 2015-08-11.
  29. ۲۹٫۰ ۲۹٫۱ "Releases • neovim/neovim". GitHub. Retrieved 2021-07-15.
  30. "NVIM v0.6.1". 31 December 2021. Retrieved 13 January 2022.
  31. "Neovim: vim, out of the box".
  32. "Nvim documentation: vim_diff".
  33. "Neovim Vision".
  34. "Switching to NeoVim".
  35. "How to start using Neovim instead of Vim".
  36. "Neovim: Rebuilding Vim For the 21st Century".
  37. "Vimcasts.org blog post".
  38. "GitHub – neovim/neovim: Vim-fork focused on extensibility and usability". GitHub. 2019-08-29.
  39. "Neovim". Bountysource. 23 March 2014. Retrieved 2021-03-20.
  40. "NyaoVim frontend". GitHub. 2019-08-29.
  41. "Mac OS X frontend". GitHub. 2019-08-29.
  42. "Neovim-Qt frontend". GitHub. 2020-07-21.
  43. "Neovim PPA information".
  44. "Neovim wiki: installation instructions". GitHub. 2019-08-29.