Vim

Vim
Vim
Vimlogo.svg
Vim syntax.png
Vim в «консольном» режиме
Тип

Текстовый редактор

Разработчик

Брам Мооленаар и другие

Написана на

C и Vim script [1]

Операционная система

Amiga, Linux, Mac OS X, Windows, OpenVMS, OS/2, Unix

Языки интерфейса

английский, китайский, французский, итальянский, польский, русский[2]

Последняя версия

7.3 (15 августа 2010)

Лицензия

GPL-совместимая, charityware

Сайт

http://www.vim.org/

Vim (сокр. от Vi Improved, произносится «вим») — свободный режимный текстовый редактор, созданный на основе более старого vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, и созданным благодаря этому расширениям и надстройкам.

Пользовательский интерфейс Vim’а может работать в чистом текстовом (консольном) режиме.

Существует и модификация для использования в графическом оконном интерфейсе — GVim. Многие пользовательские команды в GVim могут вызываться через соответствующие пункты меню.


Содержание

Отличия от «обычных» текстовых редакторов

Одна из главных особенностей редактора — применение двух основных, вручную переключаемых, режимов ввода: командного (после запуска редактор находится в нём) и текстового (режим непосредственного редактирования текста, аналогичный большинству «обычных» редакторов).

Vim не интуитивен, так что эффективная работа с редактором требует предварительного обучения.

Функциональность

Обзор: избранные улучшения vi

GVim

В сравнении с классическим 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 «вручную» (то есть непосредственно человеком с клавиатуры) могут быть автоматизированны (включая переключение между различными режимами).

История версий

Портируемость

Одно из достоинств редактора Vim — доступность для множества операционных систем. Это особенно актуально для системных администраторов, которым приходится редактировать файлы на разных платформах.

Vim работает на следующих операционных системах:

Награды

С 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 также можно использовать в качестве персонального вики.

Примечания

  1. Vim | freshmeat.net
  2. Vim in non-English languages. Архивировано из первоисточника 23 августа 2011. Проверено 4 февраля 2008.
  3. Семь привычек эффективного редактирования текстов. Архивировано из первоисточника 23 августа 2011. Проверено 7 апреля 2010.
  4. 1 2 3 4 5 6 Moolenaar, Bram Vim, an open-source text editor (2002-01-15). Архивировано из первоисточника 23 августа 2011. Проверено 24 октября 2005.
  5. Vim Scripts  (англ.). Архивировано из первоисточника 3 февраля 2012. Проверено 4 января 2012.

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Vim" в других словарях:

  • Vim — Entwickler Bram Moolenaar und andere Aktuelle Version 7.3.346 (20. Oktober 2011) …   Deutsch Wikipedia

  • VIM — Pour les articles homonymes, voir Vim (homonymie). Vim …   Wikipédia en Français

  • Vim — Gvim, una de las implementaciones gráficas de Vim …   Wikipedia Español

  • VIM — GVim Тип Текстовый редактор Разработчик Брам Мооленаар и другие Написана на …   Википедия

  • Vim — can refer to:*Vim (text editor), or Vi IMproved, a free multi platform text editor *Vim (cleaning product), a range of household cleaning products produced by Lever Brothers *VIM Airlines *Vim Records *V.I.M., an NYC based retail clothing… …   Wikipedia

  • VIM — es la sigla de Vídeo Interactivo Multimedial o, lo que es lo mismo, IMV en inglés. El término VIM, específicamente, marca una diferencia con el de CDRom Art, ya que el contenido de este último no necesariamente es animado, y un VIM no… …   Enciclopedia Universal

  • vim — [vım] n [U] [Date: 1800 1900; : Latin; Origin: strength ] old fashioned energy ▪ She was full of vim and vigour …   Dictionary of contemporary English

  • vim — ☆ vim [vim ] n. [prob. echoic, assoc. with L vim, acc. of vis, strength] energy; vigor …   English World dictionary

  • Vim — Vim, n. [L., accusative of vis strength.] Power; force; energy; spirit; activity; vigor. [Colloq.] [1913 Webster] …   The Collaborative International Dictionary of English

  • VIM — steht für den ICAO Code einer bulgarischen Fluggesellschaft, siehe Air Via einen Texteditor, siehe Vim als Kurzbezeichnung für das Intermediärfilament Vimentin Abkürzung für Nucleus ventralis intermedius, ein Kerngebiet des Thalamus Vocabulaire… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»