- Vim
-
Vim
Vim в «консольном» режимеТип Разработчик Брам Мооленаар и другие
Написана на Операционная система Языки интерфейса английский, китайский, французский, итальянский, польский, русский[2]
Последняя версия 7.3 (15 августа 2010)
Лицензия GPL-совместимая, charityware
Сайт 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.
Терминология
- буфер — временное хранилище текста.
- окно — отдельная копия vim ограниченная частью экрана.
- именованный регистр — именованное хранилище текста для множественных вставок.
- регистр по умолчанию — неименованное хранилище текста.
- вкладки («табы», «tabs») — документы открытые в одном окне.
- аббревиатуры — сокращения, при наборе которых, они разворачиваются в больший текст.
- keymap — карта клавиш.
Режимы работы
Нормальный режим
Конечно же, подобных команд существует гораздо больше. Дело в том, что вам нужно изучить эти команды, чтобы использовать. Вы можете возразить, что, вероятно, не сможете выучить все эти команды, ведь существуют сотни различных команд перемещения, среди которых есть и простые, и достаточно хитроумные, и что уйдут недели тренировок на изучение всех этих команд. Что ж, вам и не нужно изучать их все. Вместо этого нужно разобраться в своём индивидуальном стиле редактирования и изучить только те команды, которые помогут сделать его более эффективным.[3]
Bram MoolenaarПо умолчанию Vim начинает свою работу в нормальном режиме, который также называют командным. Нажатие клавиш в этом режиме воспринимается как команды (копирования, удаления, перемещения текста и т.д.).
Среди команд нормального режима есть «односимвольные» команды. Так, например, нажатие $ приведёт к перемещению курсора в конец строки; нажатие клавиши 0 (ноль) — в начало; D (в верхнем регистре) — к удалению (delete) части текущей строки от текущего положения курсора до конца; С (в верхнем регистре) — к замене (change) части текущей строки от текущего положения курсора и до конца и т. д.
Другие команды для своей работы будут ждать дальнейшего продолжения ввода. Например f ответственно за быстрое перемещение в строке к следующему набранному после себя символу. Поэтому после нажатия f Vim будет ждать набора этого символа, чтобы использовать его в качестве искомого.
После нажатия y (yank), d , c и других подобных «управляющих» клавиш Vim будет ожидать дальнейшего ввода команд, задающих объект, над которым будет произведено действие (копирование, удаление или замена соответственно). Так, d a w удалит текущее слово под курсором (delete ambient word), а d $ — все символы начиная с текущего положения курсора и заканчивая концом строки.
Подобные очень простые команды используются не только в «ручном режиме» (когда при необходимости набираются всякий раз с клавиатуры), но и при задании сложных последовательностей действий.
Нормальный режим — это центральный режим, из которого осуществляется переход во все остальные. Из любого режима в командный режим можно перейти, дважды нажав клавишу Esc (в большинстве случаев достаточно одного нажатия).
Этот раздел не завершён. Вы поможете проекту, исправив и дополнив его.Режим непосредственной вставки текста
Для перехода из командного режима в режим вставки нужно нажать i . В этом режиме 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 и другие)
- VMS
- Win16 (Microsoft Windows 3.x), Win32 (Windows 4.x и Windows NT)
- Apple iOS
Награды
С 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 ChiWriter • MultiEdit • WordPerfect • Лексикон • Слово и Дело • Фотон
Windows Linux / Unix Кроссплатформенные SDK Функции Категории:- Программное обеспечение по алфавиту
- Свободные текстовые редакторы
- Кроссплатформенное программное обеспечение
- UNIX
- Свободное программное обеспечение, написанное на Си
- Программное обеспечение, программируемое с помощью Lua
Wikimedia Foundation. 2010.