Vim

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск
Vim
Файл:Vimlogo.svg
Vim в «консольном» режиме
Тип Текстовый редактор
Разработчик Брам Мооленаар и другие
Написана на C и Vim script [1]
ОС Amiga, GNU/Linux, Mac OS X, Windows, OpenVMS, OS/2, Unix
Язык интерфейса английский, китайский, французский, итальянский, польский, русский[2]
Версия 7.2 (9 августа 2008)
Лицензия GPL-совместимая, charityware
Сайт http://www.vim.org/

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»)
  • аббревиатуры
  • keymap

Режимы работы

Нормальный режим

Конечно же, подобных команд существует гораздо больше. Дело в том, что вам нужно изучить эти команды, чтобы использовать. Вы можете возразить, что, вероятно, не сможете выучить все эти команды, ведь существуют сотни различных команд перемещения среди которых есть и простые, и достаточно хитроумные, и что уйдут недели тренировок на изучение всех этих команд. Что ж, вам и не нужно изучать их все. Вместо этого нужно разобраться в своем индивидуальном стиле редактирования и изучить только те команды, которые помогут сделать его более эффективным.[1]

Bram Moolenaar

По умолчанию Vim начинает свою работу в нормальном режиме, который иногда также называют командным. Нажатие клавиш в этом режиме воспринимается как команды, такие, например, как скопировать, удалить или переместить текст.

Команды бывают «односимвольные», так, например, нажатие $ приведёт к перемещению курсора в конец строки,
нажатие клавиши 0 — в начало,
D (в верхнем регистре) — к удалению («delete») части текущей строки от текущего положения курсора до конца,
С (в верхнем регистре) — замене («change») части текущей строки от текущего положения курсора до конца и т. д.

Некоторые команды для своей работы будут ждать дальнейшего продолжения ввода, например,
fc — быстрое перемещение курсора следующему символу c в строке, после нажатия f Vim будет ждать набора следующего символа чтобы использовать его в качестве искомого (с).

После нажатия yyank»), d, c и других подобных «управляющих» клавиш Vim будет ожидать дальнейшего ввода команд, задающих объект над которым будет произведено действие (копирование, удаление или замены соответственно).
Так, daw удалит текущее слово под курсором («delete ambient word»), а d$ — все символы начиная с текущего положения курсора и заканчивая концом строки.

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

Нормальный режим — это центральный режим, из этого режима осуществляется переход во все остальные режимы. Из любого режима в командный режим можно перейти, дважды нажав клавишу Escape (в большинстве случаев достаточно одного нажатия).

Режим непосредственной вставки текста

В этом режиме Vim работает так же как и большинство «обычных» текстовых редакторов. Набранные символы не воспринимаются как команды, а вставляются в существующий текст.

Для вставки, удаления, изменения, автодополнения текста также могут использоваться клавиатурные сочетания (<Ctrl-R> и др.) Для возврата в нормальный режим следует нажать клавишу Escape.

Режим командной строки

Этот режим вызывается нажатием символа : двоеточия из командного режима. За двоеточием следует сложная команда, например такая как поиск или замена, после ввода которой она передаётся на исполнение нажатием 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 побеждал в категории «Любимый текстовый редактор» конкурса Readers' Choice Awards журнала LinuxJournal. Кроме того, текстовый редактор получил награды Linuxworld Editors' Choice Award в 1999 и Slashdot Beanie Award в 2000.

Лицензия

Vim распространяется по GPL-совместимой лицензии известной как Charityware (англ. charity — благотворительность). Часть средств, пожертвованных на разработку vim, тратится на поддержку сирот Уганды посредством организации ICCF Holland.

Расширения Vim

Общее число расширений, доступных на официальном сайте, составляет более 2000.

К популярным расширениям Vim, в частности, относятся:

  • MiniBufferExplorer
  • taglist — просмотр структуры программных файлов (список функций и пр.)
  • bufexplorer
  • closetag — позволяет закрывать текущий тег при редактировании html/xml-файлов
  • supertab — автодополнение слов по нажатию клавиши «tab» (при этом отступы строк работают как обычно).

См. также

Примечания

  1. http://freshmeat.net/projects/vim
  2. Vim in non-English languages. Проверено 4 февраля 2008.
  3. 3,0 3,1 3,2 3,3 3,4 3,5 Moolenaar, Bram Vim, an open-source text editor (2002-01-15). Проверено 24 октября 2005.

Ссылки

<span id="interwiki-de-fa" />af:VIM ar:فيم (محرر نصوص) bar:Vim bg:Vim bs:Vim ca:Vim cs:Vim de:Vim el:Vim en:Vim (text editor) eo:Vim (tekstoprilaborilo) es:Vim eu:Vim fi:Vim fr:Vim he:Vim hr:Vim hu:Vim ia:Vim it:Vim (editor di testo) ja:Vim ko:Vim lt:Vim ms:Vim nl:Vim (teksteditor) pl:Vim pt:Vim ro:Vim sh:Vim sv:Vim (textredigerare) ta:விம் th:วิม tr:Vim uk:Vim zh:Vim

Источник — «http://www.sbup.com/wiki/Vim»
Личные инструменты

Served in 0.394 secs.