Vim (текстовый редактор) - Википедия - Vim (text editor)
Vim работает в эмулятор терминала | |
Оригинальный автор (ы) | Брэм Мооленаар |
---|---|
изначальный выпуск | 2 ноября 1991 г. |
Стабильный выпуск | 8.2.0000[1] (13 декабря 2019 г. ) [±] |
Репозиторий | |
Написано в | C, Сценарий Vim |
Операционная система | Unix, Linux, Windows NT, MS-DOS, macOS, iOS, Android, Хайку, AmigaOS, MorphOS |
Тип | Текстовый редактор |
Лицензия | Бесплатно программное обеспечение (Лицензия Vim ), благотворительная посуда |
Интернет сайт | www |
Vim (/vɪм/;[2] сокращение Vi IMпроверено) является клоном с дополнениями Билл Джой с vi Текстовый редактор программа для Unix. Автор Vim, Брэм Мооленаар, основанный на исходный код для порта Стиви редактор к Amiga[3] и выпустил общедоступную версию в 1991 году. Vim предназначен для использования как с Интерфейс командной строки и как отдельное приложение в графический интерфейс пользователя. Vim - это бесплатное программное обеспечение с открытым исходным кодом и выпущен под лицензией, которая включает некоторые благотворительная посуда пунктов, поощряющих пользователей, которым нравится программное обеспечение, рассмотреть возможность пожертвования детям в Уганда.[4] Лицензия совместима с Стандартная общественная лицензия GNU через специальный пункт, разрешающий распространение измененных копий »под GNU GPL версии 2 или любой более поздней версии ».[5]
С момента выпуска для Amiga, кросс-платформенный разработка сделала его доступным на многие другие системы. В 2006 году он был признан самым популярным редактором среди Linux журнал читатели;[6] в 2015 году Переполнение стека Опрос разработчиков показал, что это третий по популярности текстовый редактор,[7] и пятая по популярности среда разработки в 2019 году.[8]
История
Предшественник Вима, Стиви (редактор ST для энтузиастов VI), был создан Тимом Томпсоном для Atari ST в 1987 г.[9][10] и далее развит Тони Эндрюс[9][11] и Г. (Фред) Уолтер.[12][13]
Основываясь на своей работе над Стиви, Брэм Мооленаар начал работу над Vim для Amiga компьютер в 1988 году, с первым публичным выпуском (Vim v1.14) в 1991 году.[14][15][нужен лучший источник ]
Во время его первого выпуска название «Vim» было аббревиатурой от «Vi IMitation», но в конце 1993 года оно было изменено на «Vi IMproved».[16]
История выпуска | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Интерфейс
Нравиться vi, Интерфейс Vim основан не на меню или значках, а на командах, указанных в текстовый пользовательский интерфейс; это GUI Режим, gVim, добавляет меню и панели инструментов для часто используемых команд, но полная функциональность по-прежнему выражается через командная строка режим. Vi (и, соответственно, Vim) позволяет машинистке держать пальцы на клавиатуре. домашний ряд, что может быть преимуществом для сенсорная машинистка.[29]
Vim имеет встроенный руководство для новичков называется vimtutor. Обычно он устанавливается вместе с Vim, но существует как отдельный исполняемый файл и может запускаться с помощью команды оболочки.[30] Также есть Vim Руководство пользователя который подробно описывает функции Vim и Часто задаваемые вопросы. Это руководство можно прочитать в Vim или найти в Интернете.[31][32]
Vim также имеет встроенную справочную систему (с использованием :помощь
command), который позволяет пользователям запрашивать и перемещаться по командам и функциям.
Режимы
Vim имеет 12 различных режимов редактирования, 6 из которых являются вариантами 6 основных режимов.[33] Основные режимы:
- Нормальный режим - используется для команд редактора. Это также режим по умолчанию, если только
режим вставки
опция указана. - Визуальный режим - аналогичен обычному режиму, но используется для выделения областей текста. Обычные команды запускаются в выделенной области, которую, например, можно использовать для перемещения или редактирования выделения.
- Выбирать режим - работает аналогично визуальному режиму. Однако, если вводится печатаемый символ, возврат каретки или новая строка (или перевод строки), Vim вставляет символ и запускает режим вставки.[34]
- Вставлять режим - аналогичен редактированию в большинстве современных редакторов. В режиме вставки буферы могут быть изменены с вставленным текстом.
- Командная строка или же Cmdline mode - поддерживает однострочный ввод в нижней части окна Vim. Обычные команды (начиная с
:
), и некоторые другие конкретные буквы, соответствующие различным действиям (включая поиск шаблона и команду фильтрации), активируют этот режим. - Бывший режим - аналогично режиму Cmdline, он принимает однострочный ввод в нижней части окна. Однако в режиме Cmdline ввод команды выходит из режима при выполнении команды. Ввод команды в режиме Ex не приводит к изменению режима.
Настройка
Vim обладает широкими возможностями настройки и расширения, что делает его привлекательным инструментом для пользователей, которым требуется большой контроль и гибкость в своей среде редактирования текста.[35] Ввод текста облегчается благодаря множеству функций, предназначенных для повышения эффективности клавиатуры. Пользователи могут выполнять сложные команды с «назначениями клавиш», которые можно настраивать и расширять. Функция «записи» позволяет создавать макросы для автоматизации последовательности нажатий клавиш и вызова внутренних или определяемых пользователем функций и сопоставлений. Аббревиатуры, аналогичные макросам и сопоставлениям клавиш, облегчают расширение коротких строк текста на более длинные, а также могут использоваться для исправления ошибок. Vim также предлагает «легкий» режим для пользователей, которым требуется более простое решение для редактирования текста.[36]
Есть много плагины доступны, которые расширяют или добавляют новые функции в Vim, например линтеры, интеграция с Git, отображение цветов в CSS. Эти сложные сценарии обычно пишутся на внутреннем языке сценариев Vim, vimscript (также известном как VimL),[37] но может быть написан и на других языках.
Существуют проекты, объединяющие сложные сценарии и настройки и направленные на превращение Vim в инструмент для решения конкретной задачи или на добавление особого вкуса к его поведению. Примеры включают Крем, который заставляет Vim вести себя как редактор щелчков и вводить текст, или VimOutliner, который обеспечивает удобную планировщик для пользователей Unix-подобных систем.
Особенности и улучшения по сравнению с vi
Vim имеет режим совместимости с vi, но когда этот режим не используется, Vim имеет множество улучшений по сравнению с vi.[38] Однако даже в режиме совместимости Vim не полностью совместим с vi, как определено в Единая спецификация Unix[39] и POSIX (например, Vim не поддерживает открытый режим vi, только визуальный режим). Разработчики Vim заявляют, что он «полностью совместим с Vi».[40]
Некоторые из улучшений Vim включают завершение, сравнение и слияние файлов (известный как vimdiff), комплексная интегрированная справочная система, расширенная обычные выражения, языки сценариев (как собственные, так и через альтернативные интерпретаторы сценариев, такие как Perl, Python, Ruby, Tcl и т. д.), включая поддержку плагины, а графический интерфейс пользователя (известный как gvim), ограниченный интегрированная среда развития -подобные особенности, мышь взаимодействие (как с графическим интерфейсом, так и без него), складывание, редактирование сжатых или архивных файлов в gzip, bzip2, застегивать, и деготь формат и файлы по сетевым протоколам, таким как 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 также поддерживает более сложные типы данных, такие как списки и словари и (простая форма) объектно-ориентированного программирования. Встроенные функции, такие как карта()
и фильтр()
разрешить базовую форму функциональное программирование, а сценарий Vim имеет лямбда начиная с версии 8.0. Скрипт Vim в основном написан на императивный стиль программирования.
Vim макросы может содержать последовательность нормальный режим команды, но также может вызывать ex-команды или функции, написанные в сценарии Vim, для более сложных задач. Почти все расширения (называемые плагинами или чаще скриптами) основных функций Vim написаны на скрипте Vim, но плагины также могут использовать другие языки, например Perl[46], Python[47], Lua[48], Рубин[49], Tcl[50], или же Ракетка.[51] Эти плагины можно установить вручную или через диспетчер плагинов, например Vundle, Pathogen или Vim-Plug.
Файлы сценария Vim хранятся в виде обычного текста, как и другой код, а расширение имени файла обычно .vim
. Заметным исключением является конфигурационный файл Vim, .vimrc
.
Примеры
"Это программа Hello World в сценарии Vim.эхо "Привет, мир!""Это простой цикл while в скрипте Vim.позволять я = 1пока я < 5 эхо "счет" я позволять я += 1в конце концовотпустить я
Доступность
В то время как vi изначально был доступен только на Unix операционных систем, Vim был портирован ко многим операционным системам, включая AmigaOS (исходная целевая платформа), Atari МИНТ, BeOS, ДОС, Windows начиная с Windows NT 3.1, OS / 2, OS / 390, MorphOS, OpenVMS, QNX, ОС RISC, Linux, BSD, и Классическая Mac OS.[52] Кроме того, Vim поставляется с каждой копией яблоко macOS.[53]
Независимые порты Vim доступны как для Android[54][55] и iOS.[56]
Неовим
Эта статья слишком полагается на Рекомендации к основные источники.Октябрь 2020) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Неовим[57] вилка - с дополнениями[58] - Vim, который стремится улучшить расширяемость и ремонтопригодность Vim.[59] Neovim использует тот же синтаксис конфигурации, что и Vim; в результате то же самое конфигурационный файл можно использовать с обоими редакторами, хотя между ними есть небольшие различия.[60] Если дополнительные функции Neovim не используются, Neovim совместим почти со всеми функциями Vim.[61]
Проект Neovim был запущен в 2014 году, и некоторые члены сообщества Vim предложили раннюю поддержку высокоуровневого рефакторинга для обеспечения лучшего сценария, плагинов и интеграции с современными GUI .[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)
- Список текстовых редакторов
- Сравнение текстовых редакторов
- Вимператор
- Пентадактиль
Рекомендации
- ^ «Релизы». Получено 13 декабря 2019 - через GitHub.
- ^ Документация по Vim: введение: «Vim произносится как одно слово, как Джим, а не как vi-ai-em. Оно пишется с большой буквы, так как это имя, опять же как Джим».
- ^ Заплетал, Лукаш (18 апреля 2005 г.), "Интервью: Брэм Мооленаар", LinuxEXPRES: 21–22, получено 5 февраля 2015,
VIM является производным от другого клона VI или вы начали с нуля? Я начал со Стиви. Это был клон Vi для компьютера Atari ST, перенесенный на Amiga. У него было довольно много проблем, и он не мог делать все, что мог Vi, но, поскольку исходный код был доступен, я мог исправить это сам. (английский перевод )
- ^ "Документация Vim: Уганда". vimhelp.org.
- ^ "Документация Vim: Уганда".
- ^ "Linux Journal: Выбор читателей 2003". 1 ноября 2003 г.. Получено 24 мая 2006.; "Linux Journal: Выбор читателей 2004 г.". 1 ноября 2004 г.. Получено 24 мая 2006.; "Linux Journal: 2005 Readers 'Choice Awards". 28 сентября 2005 г.. Получено 24 мая 2006.
- ^ «Опрос разработчиков Stack Overflow, 2015 § IV. Текстовый редактор». Переполнение стека. Получено 25 июля 2016.
- ^ «Результаты опроса разработчиков Stack Overflow за 2019 год». Переполнение стека § VII. Среды разработки. Получено 20 июля 2019.
- ^ а б c d Томпсон, Тим (26 марта 2000 г.). "Стиви". Получено 27 декабря 2010.
- ^ а б Тим Томпсон (28 июня 1987 г.). "Мини-vi для ST". Группа новостей: comp.sys.atari.st. Usenet: [email protected]. Получено 27 декабря 2010.
- ^ а б Тони Эндрюс (6 июня 1988 г.). «v15i037: Stevie,« начинающий »клон VI для Unix, OS / 2, Amiga». Группа новостей: comp.sources.unix. Usenet: [email protected]. Получено 27 декабря 2010.
- ^ Vim (20 января 2015 г.). "intro.txt". Справка Vim. Vim. Архивировано из оригинал 9 июля 2016 г.. Получено 9 июля 2016.
- ^ "vim (1)". die.net. Vim. 11 апреля 2006 г. Архивировано с оригинал 9 июля 2016 г.. Получено 9 июля 2016.
Vim основан на Стиви, над которым работали: Тим Томпсон, Тони Эндрюс и Г. (Фред) Уолтер. Хотя почти ничего не осталось от исходного кода.
- ^ "Продолжение истории Vim" (PDF).
- ^ «История Вим - Йовица Илич». Получено 25 января 2020.
- ^ а б c "VILE (Vi Like Emacs) - Часто задаваемые вопросы (FAQ)". Получено 7 сентября 2019.
- ^ а б c d е ж Мооленаар, Брэм (15 января 2002 г.). "Vim, текстовый редактор с открытым исходным кодом". Получено 24 октября 2005.
- ^ "Textfiles.com".
- ^ "Наблюдатель за файлами". Архивировано из оригинал 11 июля 2011 г.. Получено 26 февраля, 2011.
- ^ "Официальное руководство по Vim, обзор версии 4". 12 марта 2004 г.. Получено 6 августа 2008.
- ^ "Официальное руководство по Vim, сводка по версии 5". 17 января 2004 г.. Получено 6 августа 2008.
- ^ "Официальное руководство по Vim, обзор версии 6". 12 марта 2004 г.. Получено 6 августа 2008.
- ^ "Справочное руководство по Vim, версия 7". 17 июля 2016 г.. Получено 13 января 2019.
- ^ "Группы Google". groups.google.com.
- ^ Google Discussiegroepen. Groups.google.com. Проверено 9 декабря 2013.
- ^ Брэм Мооленаар. "Vim 8.0 выпущен!". Получено 12 сентября 2016.
- ^ Брэм Мооленаар. "Выпущен Vim 8.1!". Получено 18 мая 2018.
- ^ Брэм Мооленаар. "Выпущен Vim 8.2!". Получено 13 декабря 2019.
- ^ Лэмб, Линда; Роббинс, Арнольд (1998). Изучение редактора Vi. O'Reilly Media, Inc. стр.305. ISBN 9781565924260.
- ^ Мооленаар, Брэм (3 ноября 2010 г.). "Документация Vim: usr_01". Получено 28 августа 2019.
- ^ Файлы справки Vim на vimhelp.org
- ^ Уаллин, Стив (апрель 2001 г.). Vi IMproved (VIM) (PDF). Издатели New Riders. ISBN 0-7357-1001-5.
- ^ Мооленаар, Брэм (8 декабря 2010 г.). "Документация Vim: введение". vimdoc.sourceforge.net. Получено 28 августа 2019.
- ^ Мооленаар, Брэм (17 февраля 2010 г.). «Документация Vim: визуальная». vimdoc.sourceforge.net. Получено 28 августа 2019.
- ^ Мелендес, Стивен. «Почему Vim, текстовый редактор 80-х, по-прежнему является предпочтительным пользовательским интерфейсом для опытных пользователей». FastCompany. Получено 5 мая 2019.
- ^ «Советы: как упростить Vim». Linux.com. 10 апреля 2007 г.. Получено 6 мая 2019.
- ^ "Документация Vim: usr_41". vimhelp.org.
- ^ Справочная система Vim (введите "
:помощь
"в Vim) - ^ Открытая группа (2008), «vi - экранно-ориентированный (визуальный) редактор дисплея», спецификация Single Unix, версия 4 (IEEE Std 1003.1-2008), получено 27 декабря 2010
- ^ Пеппе; Бенджи; Кэмпбелл, Чарльз (2 января 2004 г.). "Vim FAQ". Получено 27 декабря 2010. (вопрос 1.3)
- ^ "Документация Vim: восстановление". vimdoc.sourceforge.net. Получено 17 декабря 2020.
- ^ "Как работать с файлами подкачки в Vim". cs.longwood.edu. Получено 17 декабря 2020.
- ^ "'опция swapfile ". vimhelp.org. 10 Октябрь 2020. Получено 18 декабря 2020.
- ^ Кляйн, Бенджамин. «Учебник по VimL: редактируйте как профессионал с плагинами и скриптами Vim, Бенджамин Кляйн | Прагматичная книжная полка». Получено 25 января 2020.
- ^ "Документация Vim: usr_41". vimhelp.org.
- ^ Verdoolaege, Sven; Герасимоф, Мэтт. "Документация Vim: if_perl". Получено 27 августа 2019.
- ^ Мур, Пол. "Документация Vim: if_pyth". Получено 27 августа 2019.
- ^ Карвалью, Луис. "Документация Vim: if_lua". Получено 27 августа 2019.
- ^ Маэда, Шуго. "Документация Vim: if_ruby". Получено 27 августа 2019.
- ^ Уилкен, Инго. "Документация Vim: if_tcl". Получено 27 августа 2019.
- ^ Хорев, Сергей. "Документация Vim: if_mzsch". Получено 27 августа 2019.
- ^ "
: справка sys-file-list
"
"Vim Online: Загрузки". Получено 7 января 2007. - ^ "Страница руководства Mac OS X для vim (1)". developer.apple.com. Apple Inc.. Получено 12 января 2010.
- ^ «VimTouch, разработка этого приложения остановилась». Получено 9 августа 2015.
- ^ «DroidVim, в активной разработке». Получено 5 марта 2017.
- ^ «Vim - Applidium, мобильное агентство в Париже». Архивировано из оригинал 20 января 2012 г.. Получено 11 августа 2015.
- ^ "Neovim: vim, из коробки".
- ^ "Документация Nvim: vim_diff".
- ^ "Неовим Вижн".
- ^ «Переход на NeoVim».
- ^ «Как начать использовать Neovim вместо Vim».
- ^ "Neovim: восстановление Vim для 21 века".
- ^ "Сообщение в блоге Vimcasts.org".
- ^ «GitHub - neovim / neovim: вилка Vim, ориентированная на расширяемость и удобство использования». 29 августа 2019.
- ^ "Сборщик средств Bountysource".
- ^ "Интерфейс NyaoVim". 29 августа 2019.
- ^ "Интерфейс Mac OS X". 29 августа 2019.
- ^ "Интерфейс Neovim-Qt". 21 июля 2020.
- ^ "Неовим ППА информация".
- ^ «Neovim wiki: инструкция по установке». 29 августа 2019.