From Wikipedia, the free encyclopedia
Vim (/vɪm/ ; [9] скарачэнне ад Vi IMproved) — свабодны экранны тэкставы рэдактар з адкрытым зыходным кодам. Гэта палепшаны клон vi ад Біла Джоя. Аўтар Vim, Брэм Муленаар, стварыў Vim з порта рэдактара Stevie для Amiga і выпусціў версію для грамадскасці ў 1991 годзе. Vim прызначаны для выкарыстання як з інтэрфейсу каманднага радка, так і ў якасці аўтаномнай праграмы ў графічным інтэрфейсе карыстальніка.
Vim | |
---|---|
| |
Тып | Тэкставы рэдактар |
Распрацоўшчык | Bram Moolenaar[d] |
Напісана на | C[1] і Vimscript[d][1] |
Аперацыйная сістэма | GNU/Linux[d][2], BSD[d][2], macOS[2], Windows[2], Android[2] і IOS[2] |
Першы выпуск | 2 лістапада 1991[3] |
Апошняя версія | |
Ліцэнзія | GNU General Public License[6] і Vim license[d][7][8] |
Сайт | vim.org (англ.) |
Медыяфайлы на Вікісховішчы |
З моманту выпуску для Amiga кросплатформавая распрацоўка зрабіла яго даступным на многіх іншых сістэмах. У 2018 годзе ён быў прызнаны самым папулярным рэдактарам сярод чытачоў Linux Journal;[10] у 2015 годзе апытанне распрацоўшчыкаў Stack Overflow паказала, што гэта трэці па папулярнасці тэкставы рэдактар[11], а ў 2019 годзе — пятае па папулярнасці асяроддзе распрацоўкі.[12]
Папярэднік Vim, Stevie (ST Editor for VI Enthusiasts), быў створаны Цімам Томпсанам для Atari ST у 1987 годзе[13] і дапрацаваны Тоні Эндрусам[13] і G.R. (Фрэдам) Уолтэрам.[14][15] Гэта быў адзін з першых папулярызаваных клонаў Vi, які не выкарыстоўваў зыходны код Vi. У зыходным кодзе Vi выкарыстоўваўся тэкставы рэдактар Ed, распрацаваны AT&T, і таму Vi маглі выкарыстоўваць толькі тыя, хто меў ліцэнзію на зыходны код AT&T. Базаванне Vim на зыходным кодзе для Stevie азначала, што праграма можа распаўсюджвацца без патрабавання ліцэнзіі на зыходны код AT&T.
Брэм Муленаар пачаў працаваць над Vim для камп‘ютара Amiga ў 1988 годзе, а першы публічны рэліз (Vim v1.14) адбыўся ў 1991 годзе.[16][17]
На момант першага выпуску назва «Vim» была абрэвіятурай ад «Vi IMitation», але ў канцы 1993 года гэта змянілася на «Vi IMproved» [18]
Дата | Версія | Змены і дапаўненні |
---|---|---|
Чэрвень, 1987 | N/A | Цім Томпсан выпускае Stevie (рэдактар для энтузіястаў VI), абмежаваны клон vi для Atari ST, зыходны код быў апублікаваны ў Usenet.[13] |
Чэрвень, 1988 | N/A | Тоні Эндрус паляпшае Stevie і партуе яго ў Unix і OS/2, выпусціўшы версію 3.10 на Usenet.[13] |
1988 | 1.0 | Брэм Муленаар стварае Vi IMitation для Amiga, заснаваны на Stevie. Ніколі не быў апублікаваны публічна. |
2 лістапада 1991 | 1.14[19] | Першы публічны выпуск Amiga на дыску Фрэда Фіша № 591[20] |
1992 | 1.22[19] | Перанос на Unix, ніколі не апублікаваны.[18] Vim цяпер канкуруе з vi. |
14 снежня 1993 | 2.0[21] | Гэта першы рэліз пад назвай Vi IMproved.[18] |
12 жніўня, 1994 | 3.0[19] | Падтрымка некалькіх вокнаў |
29 мая 1996 | 4.0[19][22] | Графічны інтэрфейс карыстальніка |
19 лютага 1998 | 5.0[19][23] | Падсвятленне сінтаксісу, асноўныя сцэнарыі (вызначаныя карыстальнікам функцыі, каманды і г.д.) |
6 красавіка 1998 | 5.1 | Выпраўленні памылак, розныя паляпшэнні |
27 красавіка 1998 | 5.2 | Падтрымка доўгіх радкоў, аглядальнік файлаў, дыялогавыя вокны, усплывальнае меню, рэжым выбару, файлы сеанса, вызначаныя карыстальнікам функцыі і каманды, інтэрфейс Tcl і г.д. |
31 жніўня 1998 | 5.3 | Выпраўленні памылак і г.д. |
25 ліпеня 1999 | 5.4 | Базавае шыфраванне файлаў, розныя паляпшэнні |
19 верасня 1999 | 5.5 | Выпраўленні памылак, розныя паляпшэнні |
16 студзеня 2000 | 5.6 | Новыя файлы сінтаксісу, выпраўленні памылак і г.д. |
24 чэрвеня 2000 | 5.7 | Новыя файлы сінтаксісу, выпраўленні памылак і г.д. |
31 мая 2001 | 5.8 | Новыя файлы сінтаксісу, выпраўленні памылак і г.д. |
26 верасня 2001 | 6.0[19][24] | Згортванне, плагіны, шматмоўнасць і г.д. |
24 сакавіка, 2002 | 6.1 | Выпраўленні памылак |
1 чэрвеня 2003 | 6.2 | Падтрымка GTK2 і libgnome2, падтрымка арабскай мовы, каманда :try, дробныя магчымасці, выпраўленні памылак |
7 чэрвеня 2004 | 6.3 | Выпраўленні памылак, абнаўленні перакладаў, паляпшэнні адзнак |
15 кастрычніка 2005 | 6.4 | Выпраўленні памылак, абнаўленні падтрымкі для моў Perl, Python і Ruby |
7 мая 2006 | 7.0[25] | Праверка арфаграфіі, дапаўненне кода, старонкі ўкладак (некалькі вокнаў прагляду/макеты вокнаў), вылучэнне бягучага радка і слупка, адмена разгалінаванняў і шмат іншага |
12 мая 2007 | 7.1 | Выпраўленні памылак, новы сінтаксіс і файлы часу выканання і г.д. |
9 жніўня 2008 | 7.2[26] | Падтрымка лічбаў з плаваючай коскай у скрыптах, рэарганізаваны код малявання экрана, выпраўленні памылак, новыя файлы сінтаксісу і г.д. |
15 жніўня 2010 | 7.3 | Падтрымка Lua, падтрымка Python3, шыфраванне Blowfish, пастаянная адмена/паўтарэнне |
10 жніўня 2013 | 7.4[27] | Новы, больш хуткі рухавік рэгулярных выразаў. |
12 верасня 2016 | 8.0[28] | Падтрымка асінхроннага ўводу/вываду, заданняў, лямбда-выразаў і г.д. |
18 мая 2018 | 8.1[29] | Падтрымка вокнаў тэрмінала і плагін gdb тэрмінала. |
13 снежня 2019 | 8.2[30] | Усплывальныя вокны, уласцівасці тэксту. |
28 чэрвеня 2022 | 9.0[31] | Скрыпт vim9 |
Vim выпускаецца па ліцэнзіі Vim, якая ўключае ў сябе некаторыя пункты аб дабрачынным праграмным забеспячэнні, якія заахвочваюць карыстальнікаў, якія любяць праграмнае забеспячэнне, разглядаць магчымасць ахвяраванняў дзецям ва Угандзе. Ліцэнзія Vim сумяшчальная з GNU General Public License праз спецыяльны пункт, які дазваляе распаўсюджваць мадыфікаваныя копіі пад GNU GPL версіі 2.0 або больш позняй.
Як і vi, інтэрфейс Vim заснаваны не на меню або значках, а на камандах, якія даюцца ў тэкставым карыстальніцкім інтэрфейсе; яго GUI рэжым, gVim, дадае меню і панэлі інструментаў для каманд, якія часта выкарыстоўваюцца, але поўная функцыянальнасць па-ранейшаму даступная праз рэжым каманднага радка. Vi (і, адпаведна, Vim) дазваляе машыністцы трымаць пальцы на галоўным радку, што можа быць перавагай для сэнсарнай машыністкі.
У Vim ёсць убудаваны падручнік для пачаткоўцаў пад назвай vimtutor, які звычайна ўсталёўваецца разам з Vim, але з’яўляецца асобным выканальным файлам і можа запускацца камандай абалонкі. [32] Кіраўніцтва карыстальніка Vim падрабязна апісвае асаблівасці Vim, і яго можна прачытаць у Vim або знайсці ў Інтэрнэце.[33][34]
Vim таксама мае ўбудаваную дапамогу (з дапамогай каманды :help
), якая дазваляе карыстальнікам запытваць і перамяшчацца па камандах і функцыях.
Vim мае розныя спецыяльныя запісы памяці, якія называюцца рэгістрамі (не блытаць з апаратнымі або працэсарнымі рэгістрамі). Пры выразанні, выдаленні, капіраванні або ўстаўцы тэксту карыстальнік можа выбраць захаванне апрацаванага тэксту ў рэгістры. Ёсць 36 рэгістраў агульнага прызначэння, звязаных з літарамі і лічбамі ([a-z0-9]), а таксама шэраг спецыяльных, якія або ўтрымліваюць спецыяльныя значэнні (бягучае імя файла, апошняя каманда і г.д.), або служаць спецыяльным мэтам. [35]
Як і vi, vim падтрымлівае некалькі рэжымаў рэдагавання. У залежнасці ад рэжыму ўведзеныя сімвалы інтэрпрэтуюцца як паслядоўнасці каманд або ўстаўляюцца як тэкст. У Vim ёсць 14 рэжымаў рэдагавання, 7 асноўных рэжымаў і 7 варыянтаў: [36]
Vim мае магчымасці наладжвання і пашырэння, што робіць яго прывабным інструментам для карыстальнікаў, якія патрабуюць вялікага кантролю і гібкасці над асяроддзем рэдагавання тэксту. [39] Увод тэксту палягчаецца мноствам функцый, прызначаных для павышэння эфектыўнасці клавіятуры. Карыстальнікі могуць выконваць складаныя каманды з дапамогай «супастаўлення клавіш», якое можна наладжваць і пашыраць. Функцыя «запісу» дазваляе ствараць макрасы для аўтаматызацыі паслядоўнасці націскання клавіш і выкліку ўнутраных або вызначаных карыстальнікам функцый і супастаўленняў. Скарачэнні, падобныя да макрасаў і супастаўленняў клавіш, палягчаюць пашырэнне кароткіх радкоў тэксту ў больш доўгія, а таксама могуць выкарыстоўвацца для выпраўлення памылак. Vim таксама мае «лёгкі» рэжым для карыстальнікаў, якія шукаюць больш простае рашэнне для рэдагавання тэксту. [40]
Ёсць шмат даступных убудоў, якія пашыраюць або дадаюць новую функцыянальнасць Vim. Гэтыя плагіны звычайна напісаны на ўнутранай мове сцэнарыяў Vim, vimscript (таксама вядомай як VimL), [41] але могуць быць напісаны і на іншых мовах.
Існуюць праекты, якія аб’ядноўваюць складаныя скрыпты і налады і накіраваны на ператварэнне Vim у інструмент для выканання канкрэтнай задачы або на даданне істотнага адцення яго паводзінам. Прыклады ўключаюць у сябе Cream, які прымушае Vim паводзіць сябе як націсні-і-пішы рэдактар, або VimOutliner, які забяспечвае зручны рэдактар для карыстальнікаў Unix-падобных сістэм.
Vim мае рэжым сумяшчальнасці vi, але калі гэты рэжым не выкарыстоўваецца, Vim мае шмат паляпшэнняў у параўнанні з vi.[42] Аднак нават у рэжыме сумяшчальнасці Vim не цалкам сумяшчальны з vi, як гэта вызначана ў спецыфікацыі Single Unix і POSIX (напрыклад, Vim не падтрымлівае адкрыты рэжым vi, а толькі візуальны рэжым). Распрацоўшчыкі Vim заяўляюць, што ён «вельмі сумяшчальны з Vi».[43]
Некаторыя з удасканаленняў Vim уключаюць функцыі завяршэння, параўнання і аб’яднання файлаў (вядомыя як vimdiff), поўную інтэграваную сістэму даведкі, пашыраныя рэгулярныя выразы, мовы сцэнарыяў (як уласныя, так і праз альтэрнатыўныя інтэрпрэтатары сцэнарыяў, такія як Perl, Python, Ruby, Tcl і г.д.) уключаючы падтрымку плагінаў, графічны інтэрфейс карыстальніка (gvim), абмежаваныя функцыі, падобныя на інтэграванае асяроддзе распрацоўкі, узаемадзеянне мышшу (як з графічным інтэрфейсам, так і без яго), згортванне, рэдагаванне сціснутых або архіваваных файлаў у gzip, bzip2, zip і tar фарматах і файлы праз сеткавыя пратаколы, такія як SSH, FTP і HTTP, захаванне стану сесіі, праверка арфаграфіі, раздзяленне (па гарызанталі і вертыкалі) і вокны з укладкамі, Unicode і іншая шматмоўная падтрымка, падсвятленне сінтаксісу, транссесійныя каманды, пошук і гісторыі пазіцый курсора, шматузроўневая і разгалінаваная гісторыя адмены/паўтарэння, якая можа захоўвацца на працягу сеансаў рэдагавання, і візуальны рэжым.
Падчас працы Vim захоўвае змены карыстальніка ў файле падпампоўкі з пашырэннем «.swp». Гэты файл можна выкарыстоўваць для аднаўлення пасля збою. Калі карыстальнік спрабуе адкрыць файл, а файл падпампоўкі ўжо існуе, Vim папярэдзіць карыстальніка, і калі карыстальнік працягне, Vim будзе выкарыстоўваць файл падпампоўкі з пашырэннем «.swo» (або, калі іх ужо больш за адзін файл падпампоўкі, «.swn», «.swm» і г.д.).[44][45] Функцыю можна адключыць.[46]
Скрыпт Vim (таксама званы Vimscript або VimL)[47] — мова сцэнарыяў, убудаваная ў Vim. [48] На аснове былой мовы рэдактара арыгінальнага рэдактара vi раннія версіі Vim дадалі каманды для кіравання патокам і азначэннямі функцый. Пачынаючы з версіі 7, скрыпт Vim таксама падтрымлівае больш прасунутыя тыпы дадзеных, такія як спісы і слоўнікі, і простую форму аб’ектна-арыентаванага праграмавання. Убудаваныя функцыі, такія як map()
і filter()
дазваляюць асноўную форму функцыянальнага праграмавання, а скрыпт Vim мае лямбды з версіі 8.0. Скрыпт Vim у асноўным напісаны ў імператыўным стылі праграмавання.
Макрасы Vim могуць утрымліваць паслядоўнасць каманд звычайнага рэжыму, але могуць таксама выклікаць ex-каманды або функцыі, напісаныя ў скрыпце Vim для больш складаных задач. Амаль усе пашырэнні (так званыя плагіны або часцей скрыпты) асноўных функцый Vim напісаны на скрыпце Vim, але плагіны таксама могуць выкарыстоўваць іншыя мовы, такія як Perl,[49] Python,[50] Lua,[51] Ruby,[52] Tcl,[53] або Racket.[54] Гэтыя плагіны можна ўсталяваць уручную або праз менеджар плагінаў, напрыклад Vundle, Pathogen або Vim-Plug.
Файлы сцэнарыяў Vim захоўваюцца ў выглядзе звычайнага тэксту, падобна іншым кодам, а пашырэнне імя файла звычайна .vim
. Адным з прыкметных выключэнняў з’яўляецца канфігурацыйны файл Vim, .vimrc
.
" 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 першапачаткова быў даступны толькі ў аперацыйных сістэмах Unix, Vim быў перанесены на многія аперацыйныя сістэмы, уключаючы AmigaOS (пачатковая мэтавая платформа), Atari MiNT, BeOS, DOS, Windows, пачынаючы з Windows NT 3.1, OS/2, OS/390, MorphOS, OpenVMS, QNX, RISC OS, Linux, BSD і Classic Mac OS.[55] Акрамя таго, Vim пастаўляецца з Apple macOS.[56]
Незалежныя парты Vim даступныя для Android[57][58] і iOS.[59]
Іншыя назвы | NVim |
---|---|
Першы выпуск | 1 лістапада 2015 |
Рэпазіторый | https://github.com/neovim/neovim |
Напісаны на | C, Vim script, Lua |
Аперацыйная сістэма | Microsoft Windows і Unix-like |
Ліцэнзія | Apache-2.0 |
Сайт | neovim.io |
Neovim [60] — гэта форк Vim, які імкнецца палепшыць пашыральнасць і абслугоўванне Vim.[61] Некаторыя асаблівасці форка ўключаюць убудаваную падтрымку пратаколу моўнага сервера (LSP), падтрымку асінхроннага ўводу-вываду і падтрымку сцэнарыяў Lua з выкарыстаннем інтэрпрэтатара мовы luaJIT.[62] [заўв 1] Праект з’яўляецца свабодным праграмным забеспячэннем, яго зыходны код даступны на GitHub.[63]
Neovim мае той жа сінтаксіс канфігурацыі, што і Vim (калі не выкарыстоўваецца vim9script); такім чынам, адзін і той жа канфігурацыйны файл можа выкарыстоўвацца з абодвума рэдактарамі, хоць ёсць нязначныя адрозненні ў дэталях параметраў. [64] Калі дадатковыя функцыі Neovim не выкарыстоўваюцца, Neovim сумяшчальны практычна з усімі функцыямі Vim. [65]
Праект Neovim быў пачаты ў 2014 годзе пасля таго, як быў адхілены патч для Vim, які падтрымлівае шматструменнасць. [66] У сакавіку 2014 года кампанія Neovim паспяхова сабрала сродкі, падтрымаўшы як мінімум аднаго штатнага распрацоўшчыка.[67][68]
Некалькі інтэрфейсаў знаходзяцца ў стадыі распрацоўкі, якія выкарыстоўваюць магчымасці Neovim. [69][70] [71]
З выпускам Neovim 0.5 2 ліпеня 2021 г. ён атрымаў убудаваную падтрымку LSP, Tree-sitter і больш поўную падтрымку Lua, уключаючы падтрымку сцэнарыяў канфігурацыі, напісаных на Lua замест VimL. [72]
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.