Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Вьет ( / v ɪ м / ; [2] сжатие Vi IMproved ) представляет собой клон, с дополнениями, от Билла Joy «s VI текстового редактора программы для Unix. Автор Vim, Брэм Мооленаар , основал его на исходном коде для переноса редактора Stevie на Amiga [3] и выпустил общедоступную версию в 1991 году. Vim разработан для использования как из интерфейса командной строки, так и как автономное приложение в графическом пользовательском интерфейсе . Vim - бесплатное программное обеспечение с открытым исходным кодоми выпущен под лицензией, которая включает в себя некоторые пункты о благотворительности , побуждающие пользователей, которым нравится это программное обеспечение, подумать о пожертвовании детям в Уганде . [4] Лицензия совместима с Стандартной общественной лицензией GNU через специальный пункт, разрешающий распространение измененных копий «под GNU GPL версии 2 или любой более поздней версии». [5]

С момента выпуска для Amiga кроссплатформенная разработка сделала его доступным для многих других систем . В 2006 году он был признан самым популярным редактором среди читателей Linux Journal ; [6] в 2015 году опрос разработчиков Stack Overflow показал, что он является третьим по популярности текстовым редактором [7] и пятым по популярности средой разработки в 2019 году [8].

История [ править ]

Предшественник Vim, Стиви (редактор ST для энтузиастов VI) , был создан Тимом Томпсоном для Atari ST в 1987 году [9] [10] и развит Тони Эндрюсом [9] [11] и GR (Фредом) Уолтером. [12] [13]

Основываясь на своей работе над Стиви, Брэм Мооленаар начал работу над Vim для компьютера Amiga в 1988 году, выпустив первый общедоступный выпуск (Vim v1.14) в 1991 году. [14] [15] [ нужен лучший источник ]

Во время его первого выпуска название «Vim» было аббревиатурой от «Vi IMitation», но в конце 1993 года оно было изменено на «Vi IMproved» [16].

Интерфейс [ править ]

Графический Vim (gVim) под GTK + 2 .
Код вверху ( Go ), открытые файлы, регистры («менеджер буфера обмена» и история макросов)

Как и vi , интерфейс Vim основан не на меню или значках, а на командах, заданных в текстовом пользовательском интерфейсе ; его режим графического интерфейса , gVim , добавляет меню и панели инструментов для часто используемых команд, но полная функциональность по-прежнему выражается через режим командной строки . Vi (и, как следствие, Vim) имеет тенденцию позволять машинистке держать пальцы в главном ряду , что может быть преимуществом для машинистки слепым методом . [29]

В Vim есть встроенное руководство для начинающих под названием vimtutor. Обычно он устанавливается вместе с Vim, но существует как отдельный исполняемый файл и может запускаться с помощью команды оболочки. [30] Существует также руководство пользователя Vim , в котором подробно описаны функции Vim и ответы на часто задаваемые вопросы . Это руководство можно прочитать в Vim или найти в Интернете. [31] [32]

Vim также имеет встроенную справку (с помощью :helpкоманды), которая позволяет пользователям запрашивать и перемещаться по командам и функциям.

Поиск (grep) внутри Vim по файлам на диске без плагинов

Режимы [ править ]

Vim имеет 12 различных режимов редактирования, 6 из которых являются вариантами 6 основных режимов. [33] Основные режимы:

  • Нормальный режим - используется для команд редактора. Это также режим по умолчанию, если insertmodeне указан параметр.
  • Визуальный режим - аналогичен обычному режиму, но используется для выделения областей текста. Обычные команды запускаются в выделенной области, которую, например, можно использовать для перемещения или редактирования выделения.
  • Выбрать режим - работает аналогично визуальному режиму. Однако, если вводится печатаемый символ, возврат каретки или новая строка (или перевод строки), Vim вставляет символ и запускает режим вставки. [34]
  • Режим вставки - аналогично редактированию в большинстве современных редакторов. В режиме вставки буферы могут быть изменены с вставленным текстом.
  • Режим командной строки или Cmdline - поддерживает однострочный ввод в нижней части окна Vim. Обычные команды (начинающиеся с :) и некоторые другие конкретные буквы, соответствующие различным действиям (включая поиск по шаблону и команду фильтрации), активируют этот режим.
  • Режим Ex - аналогично режиму Cmdline, он принимает однострочный ввод в нижней части окна. Однако в режиме Cmdline ввод команды выходит из режима при выполнении команды. Ввод команды в режиме Ex не приводит к изменению режима.
История команд ниже: мы можем редактировать каждую команду и / или запускать ее снова

Настройка [ править ]

Vim обладает широкими возможностями настройки и расширения, что делает его привлекательным инструментом для пользователей, которым требуется большой контроль и гибкость в своей среде редактирования текста. [35] Ввод текста упрощен благодаря множеству функций, предназначенных для повышения эффективности клавиатуры. Пользователи могут выполнять сложные команды с «назначениями клавиш», которые можно настраивать и расширять. Функция «записи» позволяет создавать макросы для автоматизации последовательностей нажатий клавиш и вызова внутренних или определяемых пользователем функций и сопоставлений. Аббревиатуры, аналогичные макросам и сопоставлениям клавиш, облегчают расширение коротких строк текста на более длинные, а также могут использоваться для исправления ошибок. Vim также предлагает «легкий» режим для пользователей, которым требуется более простое решение для редактирования текста.[36]

Доступно множество плагинов , расширяющих или добавляющих новые функции в Vim, такие как линтеры , интеграция с Git , отображение цветов в CSS . Эти сложные сценарии обычно пишутся на внутреннем языке сценариев Vim, vimscript (также известном как VimL), [37], но могут быть написаны и на других языках.

Vim редактирует JavaScript, с установленным плагином GitGutter: плюсы слева показывают новые строки (по информации от Git).

Существуют проекты, объединяющие сложные сценарии и настройки и направленные на превращение Vim в инструмент для решения конкретной задачи или на добавление особого вкуса к его поведению. Примеры включают Cream , который заставляет Vim вести себя как редактор щелчков мышью, или VimOutliner, который предоставляет удобную схему для пользователей Unix-подобных систем.

Особенности и улучшения по сравнению с vi [ править ]

Vim имеет режим совместимости с vi, но когда этот режим не используется, Vim имеет много улучшений по сравнению с vi. [38] Однако даже в режиме совместимости Vim не полностью совместим с vi, как определено в спецификации Single Unix [39] и POSIX (например, Vim не поддерживает открытый режим vi, только визуальный режим). Разработчики Vim заявляют, что он «полностью совместим с Vi». [40]

Файловый менеджер внутри vim

Некоторые из улучшений Vim включают завершение , сравнение и объединение файлов (известное как vimdiff), комплексную интегрированную справочную систему, расширенные регулярные выражения , языки сценариев (как собственные, так и через альтернативные интерпретаторы сценариев, такие как Perl, Python, Ruby, Tcl и т. Д.) ), включая поддержку плагинов , графический интерфейс пользователя (известный как gvim), ограниченные возможности интегрированной среды разработки , взаимодействие с мышью (как с графическим интерфейсом пользователя, так и без него), свертывание , редактирование сжатых или заархивированных файлов в gzip , bzip2, zip и tar , а также файлы по сетевым протоколам, таким как SSH , FTP и HTTP , сохранение состояния сеанса, проверка орфографии , разделение (горизонтальное и вертикальное) и окна с вкладками, поддержка Unicode и других языков, подсветка синтаксиса , перевод команда сеанса, история поиска и положения курсора , многоуровневая и ветвящаяся история отмены / повтора, которая может сохраняться в сеансах редактирования, и визуальный режим.

Во время работы Vim сохраняет изменения пользователя в файле подкачки с расширением ".swp" . Файл подкачки можно использовать для восстановления после сбоя. Если пользователь пытается открыть файл, а файл подкачки уже существует, Vim предупредит пользователя, и, если пользователь продолжит, Vim будет использовать файл подкачки с расширением «.swo» (или, если уже существует более одного файл подкачки, «.swn», «.swm» и т. д.). [41] [42] Эту функцию можно отключить. [43]

: команда версии отображает флаги компиляции (поддерживаемые функции)

Сценарий Vim [ править ]

Сценарий Vim (также называемый Vimscript или VimL ) [44] - это язык сценариев, встроенный в Vim. [45] Основываясь на языке бывшего редактора исходного редактора vi , ранние версии Vim добавляли команды для потока управления и определения функций. Начиная с версии 7, сценарий Vim также поддерживает более сложные типы данных, такие как списки и словари и (простая форма) объектно-ориентированное программирование . Встроенные функции, такие как map()и filter()позволяют использовать базовую форму функционального программирования , а сценарий Vim имеет лямбданачиная с версии 8.0. Скрипт Vim в основном написан в императивном стиле программирования .

Vim макросы могут содержать последовательность нормального режима команд, но и может вызывать бывшие команды или функции , написанные в Vim сценарии для более сложных задач. Почти все расширения (называемые подключаемыми модулями или, чаще всего, сценариями) основных функций Vim написаны на сценариях Vim, но подключаемые модули также могут использовать другие языки, такие как Perl , [46] Python , [47] Lua , [48] Ruby , [49] Tcl , [50] или Racket . [51] Эти плагины можно установить вручную или через диспетчер плагинов, например Vundle, Pathogen или Vim-Plug.

Файлы сценариев Vim хранятся в виде обычного текста, как и другой код, и обычно имеют расширение имени файла .vim. Заметным исключением в том , что это файл конфигурации Vim, в .vimrc.

Примеры [ править ]

"Это программа Hello World в сценарии Vim.
Echo " Hello, world! ""Это простой в то время как цикл в Vim сценария. Пусть  я  =  1 , а  я  <  5 эхо „отсчет“  я  пусть  я  + =  1 ENDWHILE
unlet я

Доступность [ править ]

В то время как 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 . [52] Кроме того, Vim поставляется с каждой копией Apple macOS . [53]

Независимые порты Vim доступны как для Android [54] [55], так и для iOS . [56]

Неовим [ править ]

Неовим
Скриншот Neovim
Neovim с плагином строки состояния

Neovim [57] - это форк (с дополнениями [58]  ) Vim, который стремится улучшить расширяемость и ремонтопригодность Vim. [59] Neovim использует тот же синтаксис конфигурации, что и Vim; в результате один и тот же файл конфигурации может использоваться с обоими редакторами, хотя между точными параметрами, используемыми между ними, есть незначительные различия. [60] Если дополнительные функции Neovim не используются, Neovim совместим почти со всеми функциями Vim. [61]

Проект Neovim был запущен в 2014 году, и некоторые члены сообщества Vim предложили на раннем этапе поддержку высокоуровневого рефакторинга, чтобы улучшить сценарии, плагины и интеграцию с современными графическими интерфейсами . [62] [63] Проект является бесплатным программным обеспечением, и его исходный код доступен на GitHub . [64]

23 марта 2014 года Neovim провел успешный сбор средств, [65] поддержав как минимум одного разработчика, работающего полный рабочий день. Несколько интерфейсов находятся в стадии разработки с использованием возможностей Neovim. [66] [67] [68]

Редактор Neovim доступен в PPA Ubuntu [69] и некоторых других менеджерах пакетов [70], что позволяет устанавливать его в различных операционных системах.

См. Также [ править ]

  • Изучение редакторов vi и Vim , учебное пособие по vi и vim, изданное O'Reilly Media.
  • Война редакторов - соперничество между пользователями текстовых редакторов Emacs и vi (Vim)
  • Список текстовых редакторов
  • Сравнение текстовых редакторов
  • Вимператор
  • Пентадактиль

Ссылки [ править ]

  1. ^ «Релизы» . Проверено 13 декабря 2019 г. - через GitHub .
  2. ^ Документация по Vim: введение : «Vim произносится как одно слово, как Джим, а не как vi-ai-em. Оно пишется с большой буквы, поскольку это имя, опять же, как Джим».
  3. ^ Zapletal, Лукаш (18 апреля 2005), "Интервью: Брэй Moolenaar" , LinuxEXPRES : 21-22 , извлекаться 5 февраля 2 015 , Is VIM производное другого VI клона или вы начали с нуля? Я начал со Стиви. Это был клон Vi для компьютера Atari ST, перенесенный на Amiga. У него было довольно много проблем, и он не мог делать все, что мог Vi, но, поскольку исходный код был доступен, я мог исправить это сам. ( Перевод на английский )
  4. ^ "Документация Vim: Уганда" . vimhelp.org .
  5. ^ "Документация Vim: Уганда" .
  6. ^ "Linux Journal: 2003 Readers 'Choice Awards" . 1 ноября 2003 . Проверено 24 мая 2006 года .; «Linux Journal: 2004 Readers 'Choice Awards» . 1 ноября 2004 . Проверено 24 мая 2006 года .; "Linux Journal: 2005 Readers 'Choice Awards" . 28 сентября 2005 . Проверено 24 мая 2006 года .
  7. ^ «Stack Overflow Developer Survey 2015 § IV. Текстовый редактор» . Переполнение стека . Проверено 25 июля 2016 года .
  8. ^ «Результаты опроса разработчиков Stack Overflow 2019» . Переполнение стека § VII. Среды разработки . Проверено 20 июля 2019 .
  9. ^ a b c d Томпсон, Тим (26 марта 2000 г.). «Стиви» . Проверено 27 декабря 2010 года .
  10. ^ Б Тим Томпсон (28 июня 1987). "Мини-vi для ST" . Группа новостейcomp.sys.atari.st . Usenet: [email protected] . Проверено 27 декабря 2010 года . 
  11. ^ a b Тони Эндрюс (6 июня 1988 г.). «v15i037: Стиви,« начинающий »клон ВП для Unix, OS / 2, Amiga» . Группа новостейcomp.sources.unix . Usenet: [email protected] . Проверено 27 декабря 2010 года . 
  12. Vim (20 января 2015 г.). "intro.txt" . Справка Vim . Vim. Архивировано из оригинала 9 июля 2016 года . Дата обращения 9 июля 2016 .
  13. ^ "vim (1)" . die.net . Vim. 11 апреля 2006 Архивировано из оригинала 9 июля 2016 года . Дата обращения 9 июля 2016 . Vim основан на Стиви, над которым работали: Тим Томпсон, Тони Эндрюс и GR (Фред) Уолтер. Хотя почти ничего не осталось от исходного кода.
  14. ^ "Продолжение истории Vim" (PDF) .
  15. ^ "История Вим - Йовица Илич" . Проверено 25 января 2020 года .
  16. ^ a b c "VILE (Vi Like Emacs) - Часто задаваемые вопросы (FAQ)" . Проверено 7 сентября 2019 .
  17. ^ a b c d e f Мооленаар, Брэм (15 января 2002 г.). «Vim, текстовый редактор с открытым исходным кодом» . Проверен 24 октября +2005 .
  18. ^ "Textfiles.com" .
  19. ^ "Filewatcher" . Архивировано из оригинала на 11 июля 2011 года . Проверено 26 февраля 2011 года .
  20. ^ "Официальное руководство по Vim, сводка по версии 4" . 12 марта 2004 . Проверено 6 августа 2008 года .
  21. ^ "Официальное руководство по Vim, обзор версии 5" . 17 января 2004 . Проверено 6 августа 2008 года .
  22. ^ "Официальное руководство по Vim, обзор версии 6" . 12 марта 2004 . Проверено 6 августа 2008 года .
  23. ^ "Справочное руководство по Vim, версия 7" . 17 июля 2016 . Проверено 13 января 2019 .
  24. ^ "Группы Google" . groups.google.com .
  25. ^ Google Discussiegroepen . Groups.google.com. Проверено 9 декабря 2013.
  26. ^ Брэм Мооленаар. "Vim 8.0 выпущен!" . Проверено 12 сентября +2016 .
  27. ^ Брэм Мооленаар. "Выпущен Vim 8.1!" . Проверено 18 мая 2018 .
  28. ^ Брэм Мооленаар. "Выпущен Vim 8.2!" . Проверено 13 декабря 2019 .
  29. ^ Лэмб, Линда; Роббинс, Арнольд (1998). Изучение редактора Vi . O'Reilly Media, Inc. стр. 305 . ISBN 9781565924260.
  30. ^ Moolenaar, Брэй (3 ноября 2010). «Документация Vim: usr_01» . Проверено 28 августа 2019 .
  31. ^ Файлы справки Vim на vimhelp.org
  32. ^ Oualline, Стив (апрель 2001). Vi IMproved (VIM) (PDF) . Издатели New Riders. ISBN  0-7357-1001-5.
  33. ^ Moolenaar, Брэй (8 декабря 2010). «Документация Vim: введение» . vimdoc.sourceforge.net . Проверено 28 августа 2019 .
  34. ^ Moolenaar, Брэм (17 февраля 2010). «Документация Vim: визуальная» . vimdoc.sourceforge.net . Проверено 28 августа 2019 .
  35. ^ Мелендес, Стивен. «Почему Vim, текстовый редактор 80-х, по-прежнему является предпочтительным пользовательским интерфейсом для опытных пользователей» . FastCompany . Дата обращения 5 мая 2019 .
  36. ^ "Советы: Упростить Vim" . Linux.com . 10 апреля 2007 . Дата обращения 6 мая 2019 .
  37. ^ "Документация Vim: usr_41" . vimhelp.org .
  38. ^ Справочная система Vim (введите ":help" в Vim)
  39. ^ The Open Group (2008), «vi - экранно-ориентированный (визуальный) редактор дисплея», спецификация Single Unix, версия 4 (IEEE Std 1003.1-2008) , получено 27 декабря 2010 г.
  40. ^ Пеппе; Бенджи; Кэмпбелл, Чарльз (2 января 2004 г.). "Vim FAQ" . Проверено 27 декабря 2010 года . (вопрос 1.3)
  41. ^ «Документация Vim: восстановление» . vimdoc.sourceforge.net . Дата обращения 17 декабря 2020 .
  42. ^ «Как работать с файлами подкачки в Vim» . cs.longwood.edu . Дата обращения 17 декабря 2020 .
  43. ^ « Подкачки“вариант» . vimhelp.org . 10 октября 2020 . Проверено 18 декабря 2020 .
  44. ^ Кляйн, Бенджамин. «Учебник по VimL: редактируйте как профессионал с плагинами и скриптами Vim, Бенджамин Кляйн | Прагматичная книжная полка» . Архивировано из оригинального 25 января 2020 года . Проверено 25 января 2020 года .
  45. ^ "Документация Vim: usr_41" . vimhelp.org .
  46. ^ Verdoolaege, Свен; Герасимоф, Мэтт. «Документация Vim: if_perl» . Проверено 27 августа 2019 .
  47. ^ Мур, Пол. "Документация Vim: if_pyth" . Проверено 27 августа 2019 .
  48. ^ Карвалью, Луис. "Документация Vim: if_lua" . Проверено 27 августа 2019 .
  49. Маэда, Шуго. "Документация Vim: if_ruby" . Проверено 27 августа 2019 .
  50. ^ Уилкен, Инго. "Документация Vim: if_tcl" . Проверено 27 августа 2019 .
  51. ^ Хорев, Сергей. "Документация Vim: if_mzsch" . Проверено 27 августа 2019 .
  52. ^ ":help sys-file-list" "Vim Online: Загрузки" . Проверено 7 января 2007 года .
  53. ^ "Страница руководства Mac OS X для vim (1)" . developer.apple.com . Apple , Inc . Проверено 12 января 2010 года .
  54. ^ «VimTouch, разработка этого приложения остановилась» . Дата обращения 9 августа 2015 .
  55. ^ «DroidVim, в стадии активной разработки» . Проверено 5 марта 2017 года .
  56. ^ "Vim - Applidium, мобильное агентство в Париже" . Архивировано из оригинального 20 -го января 2012 года . Дата обращения 11 августа 2015 .
  57. ^ "Neovim: vim, из коробки" .
  58. ^ "Документация Nvim: vim_diff" .
  59. ^ "Neovim Vision" .
  60. ^ «Переход на NeoVim» .
  61. ^ «Как начать использовать Neovim вместо Vim» .
  62. ^ "Neovim: Восстановление Vim для 21 века" .
  63. ^ "Сообщение в блоге Vimcasts.org" .
  64. ^ «GitHub - neovim / neovim: Vim-fork, ориентированный на расширяемость и удобство использования» . 29 августа 2019.
  65. ^ "Сборщик средств Bountysource" .
  66. ^ "Интерфейс NyaoVim" . 29 августа 2019.
  67. ^ "Интерфейс Mac OS X" . 29 августа 2019.
  68. ^ "Интерфейс Neovim-Qt" . 21 июля 2020.
  69. ^ "Информация о Neovim PPA" .
  70. ^ "Neovim wiki: инструкция по установке" . 29 августа 2019.

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • TechTalk Брэма Мооленаара на 25-й годовщине первого выпуска vim на YouTube