Vim
Vim в «консольном» режиме |
|
| Тип | |
|---|---|
| Разработчик |
Брам Мооленаар и другие |
| Написана на |
C и Vim script [1] |
| Операционная система | |
| Языки интерфейса |
английский, китайский, французский, итальянский, польский, русский[2] |
| Последняя версия |
7.3 (15 августа 2010) |
| Лицензия |
GPL-совместимая, charityware |
| Сайт | |
|
Vim на Викискладе
|
|
Vim (сокр. от Vi Improved, произносится «вим») — свободный режимный текстовый редактор, созданный на основе более старого vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, и созданным благодаря этому расширениям и надстройкам.
Пользовательский интерфейс Vim’а может работать в чистом текстовом (консольном) режиме.
Существует и модификация для использования в графическом оконном интерфейсе — GVim. Многие пользовательские команды в GVim могут вызываться через соответствующие пункты меню.
Содержание |
Основное отличие от «обычных» текстовых редакторов [править]
Одна из главных особенностей редактора — применение двух основных, вручную переключаемых, режимов ввода: командного (после запуска редактор находится в нём) и текстового (режим непосредственного редактирования текста, аналогичный большинству «обычных» редакторов). Существуют и другие режимы.
Vim не интуитивен, так что эффективная работа с редактором требует предварительного обучения.
Функциональность [править]
Обзор: избранные улучшения vi [править]
В сравнении с классическим vi Vim отличается следующими улучшениями:
- Работа со многими файлами одновременно. Разбиение окон редактирования может производиться многократно как по горизонтали, так и по вертикали.
- Поддержка Unicode.
- Поддержка визуального режима, который позволяет, например, выполнять операции над блоками текста.
- Неограниченная глубина отмены (undo) и возврата (redo) действий.
- Режим сравнения двух файлов, перенос отдельных изменений из одного файла в другой.
- Широкая файловая поддержка (файл со справкой и более 200 файлов с описанием синтаксиса).
- Подсветка синтаксиса, автоматическое определение величины отступа для каждой строки в зависимости от языка программирования (изначально поддерживает более 200 языков программирования и форматов конфигурационных файлов).
- Интеграция с операционной системой, дающая возможности, близкие к интегрированным средам разработки, такие как поиск ошибки по сообщению компилятора, автодополнение идентификаторов и др.
- Поддержка языка сценариев; возможность написания модулей расширения — плагинов.
- Автоматическое продолжение команд, слов, строк целиком и имён файлов.
- Автоматический вызов внешних команд (например, автоматическая распаковка файла перед редактированием).
- Распознавание и преобразование файлов различных форматов.
- Удобный механизм истории команд, поисковых слов и т. д.
- Запись и исполнение макросов.
- Возможность сохранения настроек и сеанса.
- Возможна интеграция с языками программирования Perl, Tcl, Python и Ruby.
- Поддержка языков с письмом справа налево (арабских и других).
- Сворачивание (folding) текста для лучшего обзора.
- Возможно использование графического интерфейса в специальных версиях (GTK, Motif, …).
- Хорошо конфигурируется и настраивается под нужды пользователя.
- Для программистов: поддержка цикла разработки «редактирование — компиляция — исправление» программ. Автоматическое выполнение сборки/компиляции, обнаружение и распознавание ошибок, переход к строкам ошибок в тексте программы.
- Для поклонников vi: практически стопроцентная совместимость с vi.
В редакторе Vim удалось объединить все наиболее значимые усовершенствования vi.
Справочная система Vim [править]
Vim имеет достаточно удобную и подробную справочную систему, и систему навигации и перехода между её разделами. Чтобы открыть любой её раздел достаточно воспользоваться командой :help в командном режиме.
Например, чтобы узнать, как написать собственный плагин для Vim достаточно набрать :help write-plugin.
Терминология [править]
- буфер — временное хранилище текста, каждый редактируемый файл связан с единственным буфером.
- окно — часть экрана для просмотра/редактирования одного буфера. Каждый буфер может быть размножен на неограниченное количество окон.
- вкладки («табы», «tabs») — механизм группировки и переключения между группами окон.
- именованный регистр — именованное хранилище текста для множественных вставок.
- регистр по умолчанию — неименованное хранилище текста.
- аббревиатуры — сокращения, при наборе в виде отдельных слов (но не в составе других слов) автоматически разворачивающиеся (путём замены) в заданный текст.
Режимы работы [править]
Нормальный режим [править]
Конечно же, подобных команд существует гораздо больше. Дело в том, что вам нужно изучить эти команды, чтобы использовать. Вы можете возразить, что, вероятно, не сможете выучить все эти команды, ведь существуют сотни различных команд перемещения, среди которых есть и простые, и достаточно хитроумные, и что уйдут недели тренировок на изучение всех этих команд. Что ж, вам и не нужно изучать их все. Вместо этого нужно разобраться в своём индивидуальном стиле редактирования и изучить только те команды, которые помогут сделать его более эффективным.[3]
По умолчанию Vim начинает свою работу в нормальном режиме, который также называют командным. Нажатие клавиш в этом режиме воспринимается как команды (копирования, удаления, перемещения текста и т. д.).
Среди команд нормального режима есть «односимвольные» команды. Так, например, нажатие $ приведёт к перемещению курсора в конец строки; нажатие клавиши 0 (ноль) — в начало; D (в верхнем регистре) — к удалению (delete) части текущей строки от текущего положения курсора до конца; С (в верхнем регистре) — к замене (change) части текущей строки от текущего положения курсора и до конца и т. д.
Другие команды для своей работы будут ждать дальнейшего продолжения ввода. Например f ответственно за быстрое перемещение в строке к следующему набранному после себя символу. Поэтому после нажатия f Vim будет ждать набора этого символа, чтобы использовать его в качестве искомого.
После нажатия y (yank), d , c и других подобных «управляющих» клавиш Vim будет ожидать дальнейшего ввода команд, задающих объект, над которым будет произведено действие (копирование, удаление или замена соответственно). Так, d a w удалит текущее слово под курсором (delete ambient word), а d $ — все символы начиная с текущего положения курсора и заканчивая концом строки.
Подобные очень простые команды используются не только в «ручном режиме» (когда при необходимости набираются всякий раз с клавиатуры), но и при задании сложных последовательностей действий.
Нормальный режим — это центральный режим, из которого осуществляется переход во все остальные. Из любого режима в командный режим можно перейти, дважды нажав клавишу Esc (в большинстве случаев достаточно одного нажатия).
| Этот раздел не завершён.
Вы поможете проекту, исправив и дополнив его.
|
Режим непосредственного редактирования текста [править]
Для перехода из командного режима в режим вставки можно нажать i (для начала вставки текста на месте курсора) или a (для начала вставки текста после курсора). Также существует ряд других клавиш и их сочетаний для перехода в режим непосредственного редактирования текста (например, через одну из команд замены текстового объекта).
В этом режиме Vim работает так же как и большинство «обычных» текстовых редакторов. По умолчанию набранные символы не воспринимаются как команды, а вставляются в существующий текст. Однако даже в этом режиме можно задать особые действия редактора, выполняемые при нажатии определённых клавиш, или их сочетаний. Как пример, можно задать чтобы при наборе открывающейся скобки ( сразу же добавлялась парная ей закрывающая скобка и курсор устанавливался между ними.
Для вставки, удаления, изменения и автодополнения текста также могут использоваться клавиатурные сочетания ( Ctrl + R и др.)
| Этот раздел не завершён.
Вы поможете проекту, исправив и дополнив его.
|
Режим командной строки [править]
Этот режим вызывается нажатием : из нормального режима. За двоеточием следует сложная команда (например, поиска или замены), которая после ввода передаётся на исполнение нажатием ↵ Enter . После выполнения команды редактор возвращается в нормальный режим. К этому режиму также относятся команды поиска дальше по тексту /, поиск назад по тексту (?) и команда-фильтр ! для передачи данных внешнему фильтру.
Визуальный режим [править]
Визуальный режим отсутствовал в Vi и впервые появился в Vim. Он чем-то схож с командным. С помощью специальных управляющих команд, в сочетании со стрелками и командами навигации, можно посимвольно, построчно или в виде блока выделять фрагменты текста и затем применить к ним команды нормального режима. Редактирование в этом режиме проще, чем в нормальным, потому что чётко видно к какому блоку текста будет применяться вызванная команда редактирования.
Автоматизация операций [править]
Способность Vim различать текстовые объекты (слова, предложения, параграфы, строки, отдельные символы и т. д.) позволяет задавать последовательность действий для автоматизации определённых операций.
Так, после команды
nmap <F7> byei<<ESC>ea></<C-R>0><ESC>
нажатие F7 преобразует любое слово под курсором (вне зависимости от его длины и символов, из которых он состоит) в xml-тег. К примеру если текущее слово под курсором — div, то оно будет преобразовано в <div></div>, если transform — то в <transform></transform> и т. д.
Vim способен на гораздо более сложные преобразования, можно задавать и свои функции для преобразования данных и автоматизации рутинных операций.
Все действия, которые осуществимы в Vim «вручную» (то есть непосредственно человеком с клавиатуры) могут быть автоматизированны (включая переключение между различными режимами).
История версий [править]
| История версий | ||
|---|---|---|
| Дата | Версия | Изменения |
| 1988 | 1.0 | Основан на Stevie для Amiga, названный Vi IMitation, никогда официально не выходил. |
| 2 ноября 1991 | 1.14[4] | Первая общедоступная версия для Amiga |
| 1992 | 1.22[4] | Портирован в Unix. Vim now competes with vi. This was when Vim became Vi IMproved |
| 12 августа 1994 | 3.0[4] | Поддержка разбиения окон |
| 29 мая 1996 | 4.0[4] | Графический пользовательский интерфейс |
| 19 февраля 1998 | 5.0[4] | Подсветка синтаксиса, простой язык сценариев (определяемые пользователем функции, команды и т. д.) |
| 6 апреля 1998 | 5.1 | Исправление багов и другие изменения. |
| 27 апреля 1998 | 5.2 | Поддержка длинных линий, встроенный файловый браузер, диалоги, всплывающие меню, select mode, файлы сессий, определяемые пользователем функции, команды, tcl-интерфейс и другие изменения. |
| 31 августа 1998 | 5.3 | Исправление багов и другие изменения. |
| 25 июля 1999 | 5.4 | Простое шифрование файлов, различные улучшения |
| 19 сентября 1999 | 5.5 | Исправление багов, различные улучшения |
| 16 января 2000 | 5.6 | Новые файлы синтаксиса, исправление багов и другие изменения |
| 24 июня 2000 | 5.7 | idem |
| 31 мая 2001 | 5.8 | idem |
| 26 сентября 2001 | 6.0[4] | Сворачивание, плагины, многоязычность и другие изменения |
| 24 марта 2002 | 6.1 | Исправление багов |
| 1 июня 2003 | 6.2 | GTK2, поддержка арабского, :try command, minor features, bug fixes |
| 7 июня 2004 | 6.3 | Исправление багов, обновление переводов, mark improvements |
| 15 октября 2005 | 6.4 | Исправление багов, обновления поддержки Perl, Python и Ruby |
| 7 мая 2006 | 7.0 | Spell checking, Автодополнение, вкладки («tab-ы»), подсветка текущей строки и столбца, undo branches, и другие изменения |
| 12 мая 2007 | 7.1 | Исправление багов, новые исполняемые файлы и файлы синтаксиса, и другие изменения |
| 9 августа 2008 | 7.2 | Исправление багов, новые исполняемые файлы и файлы синтаксиса, улучшение безопасности и другие изменения |
| 15 августа 2010 | 7.3 | Исправление багов, новые исполняемые файлы и файлы синтаксиса, улучшение безопасности, «вечный» undo, прекращение поддержки Mac OS 9 и GTK1, поддержка Lua и другие изменения |
Портируемость [править]
Одно из достоинств редактора Vim — доступность для множества операционных систем. Это особенно актуально для системных администраторов, которым приходится редактировать файлы на разных платформах.
Vim работает на следующих операционных системах:
- AmigaOS
- Atari MiNT
- BeOS
- DOS
- Mac OS
- NextStep
- OS/2, OSF
- RISC OS
- BSD
- Linux
- SGI
- Unix (IBM AIX, HP-UX, SGI IRIX, Sun Solaris, SCO OpenServer и другие)
- VMS
- Win16 (Microsoft Windows 3.x), Win32 (Windows 4.x и Windows NT)
- Apple iOS
- Android
Награды [править]
С 2001 по 2004 гг. Vim являлся победителем устраиваемого LinuxJournal конкурса Readers' Choice Awards в категории «Любимый текстовый редактор». Он также получал награды Linuxworld Editors' Choice Award в 1999 и Slashdot Beanie Award в 2000.
Лицензия [править]
Vim распространяется по GPL-совместимой лицензии известной как Charityware (англ. charity — благотворительность). Часть средств, пожертвованных на разработку Vim, тратится на поддержку сирот Уганды посредством организации ICCF Holland.
Расширения Vim [править]
Общее число расширений, доступных на официальном сайте, составляет более 3000[5].
К популярным расширениям Vim, в частности, относятся:
- MiniBufferExplorer;
- taglist — для просмотра структуры программных файлов (список функций и пр.);
- bufexplorer;
- closetag — для более удобного закрывания тегов при редактировании html и xml файлов;
- supertab — для автодополнения слов нажатием Tab ⇆ (при этом отступы строк работают как обычно);
- project — для организации файлов в проекты для более удобной навигации по ним;
- indexer — для генерации тегов с помощью ctags для всех файлов, входящих в проект (проект может быть организован как плагином project, так и без него). Теги нужны для быстрого перемещения от вызова функции к её объявлению, для получения списка членов структуры или класса, и т. д.
Благодаря гибкости возможностей, предоставляемых посредством расширений, Vim также можно использовать в качестве персонального вики.
Примечания [править]
- ↑ Vim | freshmeat.net
- ↑ Vim in non-English languages. Архивировано из первоисточника 23 августа 2011. Проверено 4 февраля 2008.
- ↑ Семь привычек эффективного редактирования текстов. Архивировано из первоисточника 23 августа 2011. Проверено 7 апреля 2010.
- ↑ 1 2 3 4 5 6 Moolenaar, Bram Vim, an open-source text editor (2002-01-15). Архивировано из первоисточника 23 августа 2011. Проверено 24 октября 2005.
- ↑ Vim Scripts (англ.). Архивировано из первоисточника 3 февраля 2012. Проверено 4 января 2012.
См. также [править]
| Vim в Викиучебнике? | |
| Category:Vim на Викискладе? |
- Vi
- Vimperator — расширение для Mozilla Firefox, делающее его интерфейс похожим на Vim.
Ссылки [править]
- Настройка gVim для программистов (рус.)
- Рекомендации по эффективному использованию Vim от его создателя (рус.)
- Руководство по установке и быстрой настройке редактора Vim в Unix, Linux и MS Windows 95/NT (рус.)
| Текстовые редакторы (список) | |
|---|---|
| DOS | |
| Windows | |
| Linux / Unix | |
| Кроссплатформенные | |
| SDK | |
| Функции | |