<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF96:Vim - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF96:Vim&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Thu, 14 May 2026 01:19:19 GMT</lastBuildDate>
		<item>
			<title>StavNight0ver: /* Vim: Введение в основы */</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF96:Vim&amp;diff=1737&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Vim: Введение в основы&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 15:32, 13 марта 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''Почтенный Vim – любимый редактор многих Linux-профессионалов. Он имеет репутацию трудного в освоении, но стоит трудов, уверяет д-р '''Крис Браун'''.''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''Почтенный Vim – любимый редактор многих Linux-профессионалов. Он имеет репутацию трудного в освоении, но стоит трудов, уверяет д-р '''Крис Браун'''.''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;| Заголовок  = Режимы Vim и их функции.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;| Содержание = [[Изображение:LXF96-vim.jpg|комментарий]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Текстовых редакторов в Linux намного больше, чем вы можете  себе представить. Похоже, хотя бы по одному создали  каждый человек и его собака. Продукты от собак обычно норовят обнюхивать гнезда на задней панели компьютера, и их, вероятно, лучшеигнорировать, но и без них остается много – emacs, kedit, gedit, kwrite, kate, mousepad, leafpad, fte, joe, jed, nano, pico... список можно продолжить. Но большинство профессионалов Unix и Linux выбирает их общего дедушку, Vi, и его собрата помоложе, Vim. (Vim происходит от «Vi improved» [улучшенный Vi] – это Vi , переписанный в 1991 г. Брэмом Муленаром [Bram Moolenar]. Исходный Vi написал Билл Джой [Bill Joy] в далеком 1976 г. На данном уроке используется Vim, хотя основной набор команд для Vi и Vim одинаков.) Одна из причин популярности Vim – эффективность редактирования даже при отсутствии графического интерфейса: например, если вы перевели машину в однопользовательский режим для профилактики, или это сервер, где не установлен рабочий стол.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Текстовых редакторов в Linux намного больше, чем вы можете  себе представить. Похоже, хотя бы по одному создали  каждый человек и его собака. Продукты от собак обычно норовят обнюхивать гнезда на задней панели компьютера, и их, вероятно, лучшеигнорировать, но и без них остается много – emacs, kedit, gedit, kwrite, kate, mousepad, leafpad, fte, joe, jed, nano, pico... список можно продолжить. Но большинство профессионалов Unix и Linux выбирает их общего дедушку, Vi, и его собрата помоложе, Vim. (Vim происходит от «Vi improved» [улучшенный Vi] – это Vi , переписанный в 1991 г. Брэмом Муленаром [Bram Moolenar]. Исходный Vi написал Билл Джой [Bill Joy] в далеком 1976 г. На данном уроке используется Vim, хотя основной набор команд для Vi и Vim одинаков.) Одна из причин популярности Vim – эффективность редактирования даже при отсутствии графического интерфейса: например, если вы перевели машину в однопользовательский режим для профилактики, или это сервер, где не установлен рабочий стол.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 13 Mar 2008 15:32:33 GMT</pubDate>			<dc:creator>StavNight0ver</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF96:Vim</comments>		</item>
		<item>
			<title>StavNight0ver: Новая: == Vim: Введение в основы ==  ''Почтенный Vim – любимый редактор многих Linux-профессионалов. Он имеет репутац...</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF96:Vim&amp;diff=1734&amp;oldid=prev</link>
			<description>&lt;p&gt;Новая: == Vim: Введение в основы ==  ''Почтенный Vim – любимый редактор многих Linux-профессионалов. Он имеет репутац...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Vim: Введение в основы ==&lt;br /&gt;
&lt;br /&gt;
''Почтенный Vim – любимый редактор многих Linux-профессионалов. Он имеет репутацию трудного в освоении, но стоит трудов, уверяет д-р '''Крис Браун'''.''&lt;br /&gt;
&lt;br /&gt;
Текстовых редакторов в Linux намного больше, чем вы можете  себе представить. Похоже, хотя бы по одному создали  каждый человек и его собака. Продукты от собак обычно норовят обнюхивать гнезда на задней панели компьютера, и их, вероятно, лучшеигнорировать, но и без них остается много – emacs, kedit, gedit, kwrite, kate, mousepad, leafpad, fte, joe, jed, nano, pico... список можно продолжить. Но большинство профессионалов Unix и Linux выбирает их общего дедушку, Vi, и его собрата помоложе, Vim. (Vim происходит от «Vi improved» [улучшенный Vi] – это Vi , переписанный в 1991 г. Брэмом Муленаром [Bram Moolenar]. Исходный Vi написал Билл Джой [Bill Joy] в далеком 1976 г. На данном уроке используется Vim, хотя основной набор команд для Vi и Vim одинаков.) Одна из причин популярности Vim – эффективность редактирования даже при отсутствии графического интерфейса: например, если вы перевели машину в однопользовательский режим для профилактики, или это сервер, где не установлен рабочий стол.&lt;br /&gt;
&lt;br /&gt;
Vim не самый простой редактор для изучения – его практически невозможно понять без чтения хоть какой-то документации. Не жди те также мгновенной отдачи. Как преподаватель Linux при переходе к  разделу о Vim я вижу в глазах студентов ужас. Один парень сказал мне, что если нужно будет редактировать файлы Unix, он скорее скопирует их на дискету и отредактирует в Windows, чем изучит Vim. Это отвращение к Vim’у позорно, потому что, изучив его, вы будете редактировать текст намного быстрее, чем ранее. Так что стисните зубы, прочитайте учебник и станьте Vim-гением. &lt;br /&gt;
&lt;br /&gt;
Обычно Vim запускается с именем файла в качестве аргумента. Файл открывается для редактирования, если он существует – а если нет, то создается. Так что начнем с команды &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 vi gpl.txt &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Если вы хотите работать с тем же файлом, загрузите себе его копию, используя &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 wget www.gnu.org/licenses/gpl.txt &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Одна из причин трудности изучения Vim и Vi – их режимы работы (некоторые скажут «перебор режимов!»). Другими словами, результат ввода символов зависит от режима, в котором вы находитесь. Например, в командном режиме ввод w вызывает переход на одно слово вперед, а в режиме вставки просто в текст вставляется ‘w’. Режимы и переходы между ними показаны на Рис. 1. &lt;br /&gt;
&lt;br /&gt;
=== Командный режим ===&lt;br /&gt;
Стартуя, Vim входит в командный режим. Большинство команд – это отдельные символы. Классические команды перемещения курсора в Vi и Vim – h, j, k и l, выполняющие перемещение на один символ влево, вниз, вверх и вправо. Мнемоники тут никакой: они выбраны потому, что это базовые клавиши при печати вслепую, и всегда под руками. (В Vim используются также клавиши-стрелки, но поскольку к ним нужно еще передвинуть руку, получается медленнее.) Большинство команд перемещения курсора могут иметь числовой префикс для повтора команды; так, 5j  перемещает на пять строк вниз, а 3w – на три слова вперед. В команде G префикс указывает номер строки: например, 23G перенесет вас на  23-ю строку. &lt;br /&gt;
&lt;br /&gt;
Поиск в тексте при помощи / и ? – это наискорейший способ перемещения по нему. Искомый текст может быть (ограниченным) регулярным выражением, например, /[Ss]oftware будет искать Software и software. Если вы нашли не тот экземпляр нужной строки, продолжайте вводить n для поиска следующего. &lt;br /&gt;
&lt;br /&gt;
=== Режим вставки ===&lt;br /&gt;
Для добавления текста вы должны перейти в режим вставки. Простейшие команды для этого – i, производящая вставку перед текущей позицией курсора, и a, вставляющая после него. Команды I и A укрупненные версии команд i и a; они производят вставку до и после текущей строки соответственно. Команды o и O создают пустую строку ниже или выше текущей, а затем переходят в режим вставки. &lt;br /&gt;
&lt;br /&gt;
Будучи в режиме вставки, вы можете вставлять что угодно: от одного символа до нескольких строк. Однако в режиме вставки нельзя перемещать курсор или давать любые другие команды редактирования –для этого придется вернуться в командный режим (хотя есть версии, где можно заставить использовать клавиши-стрелки для перемещения курсора даже в режиме вставки). &lt;br /&gt;
&lt;br /&gt;
Имеется лишь один способ вернуться из режима вставки в командный: нажать Esc. Заведите привычку нажимать Esc почаще. &lt;br /&gt;
&lt;br /&gt;
=== Удаление и изменение текста ===                                     &lt;br /&gt;
Команда x удаляет один символ. Она имеет префикс повтора, так что 6x удаляет шесть символов. Команда d более мощная, и должна сопровождаться командами перемещения курсора, указывающими объем удаляемого текста. Вот как она работает: d, в комбинации с перемещениями курсора, удаляет текст между его начальным и конечным                                                                                                                                                          положением. Например, dw удаляет слово, d3w удаляет три слова, d удаляет все до конца строки, d} удаляет все до конца абзаца, а dG удаляет все до конца файла. Имеется также специальная версия команды d – dd, которая удаляет всю строку. Префикс повтора работает и здесь, так что 3dd удалит три строки. &lt;br /&gt;
                                                                                                                     &lt;br /&gt;
Обождем минутку... не являются ли команды поиска (/ и ?) просто  видом перемещения курсора? Можете ли вы использовать их с командой d? Оказывается, можете. Например, d/PUBLIC удалит все до слова PUBLIC (не включая его). Более элегантный пример, d/^[0-9] удалит все до первой строки, начинающейся с цифры. (Когда я преподаю Vim, обычно в этом месте враждебность уступает неохотному признанию силы набора команд.)                                                                                               &lt;br /&gt;
&lt;br /&gt;
Команда с (change [изменить]) работает почти как команда d, за тем исключением, что она к тому же переводит редактор в режим вставки. Так что c3w можно рассматривать как указание «изменить три слова»; и так далее. &lt;br /&gt;
&lt;br /&gt;
Команда u отменяет последние сделанные изменения. Vim поддерживает многоуровневую отмену – каждая u отменяет одно изменение. В исходном Vi она работает не так. Если вы ввели две u, то вторая отменит действие первой! &lt;br /&gt;
&lt;br /&gt;
=== Режим нижней строки ===&lt;br /&gt;
Режим нижней строки используется для всего, но команда нижней строки, без которой не обойтись – это w для записи отредактированного текста в исходный файл и q для выхода. Из командного режима можно перейти в режим нижней строки, набрав :, так что :wq –стандартный способ записать ваш файл и выйти из редактора. Если вы хотите выйти из редактора без сохранения, используйте :q!. Попозже мы рассмотрим другие команды нижней строки. &lt;br /&gt;
Вы узнали достаточно, чтобы рулить в Vim по крайней мере на второй скорости, но если вы хотите уметь развить суперскорость и выполнить разворот на месте, читайте дальше... &lt;br /&gt;
&lt;br /&gt;
=== Операции вырезания и вставки ===&lt;br /&gt;
Vim поддерживает операции вырезания и вставки, используя буфер  удалений. Текст, удаляемый вами по команде d, сохраняется в этом буфере и может быть вставлен обратно в новой позиции курсора  командой p (положить). Например, переместить текущий абзац в конец файла можно так: &lt;br /&gt;
# Перейти к началу текущего абзаца при помощи {&lt;br /&gt;
# Удалить абзац командой d}&lt;br /&gt;
# Перейти в конец файла командой G &lt;br /&gt;
# Вставить удаленный абзац обратно при помощи p&lt;br /&gt;
&lt;br /&gt;
(Сравните-ка эти несколько команд с числом действий мышью,  необходимым для выполнения того же действия в редакторе с управлением мышью.) &lt;br /&gt;
&lt;br /&gt;
Копирование и вставка выполняются практически так же, за тем  исключением, что вы используете команду y вместо d. Команда y «выдергивает» текст – то есть помещает его в буфер удаления, но на самом деле не удаляет. Как и d, она действует совместно с командами  перемещения курсора, так что y2) скопирует два предложения, а 4yy скопирует четыре строки. Например, для дублирования текущей строки, наберите yyp, чтобы скопировать строку и вставить копию ниже. &lt;br /&gt;
&lt;br /&gt;
=== Становиться круто ===&lt;br /&gt;
Если одного буфера удаления вам мало, то вам будет приятно узнать, что их 26, с именами от ‘a’ до ‘z’.  Двойные кавычки используются для  указания имени буфера. Например, “t4yy скопирует четыре строки в  буфер с именем ‘t’, а “tp вставит содержимое буфера ‘t’. Содержимое именованных буферов сохраняется, пока вы работаете в редакторе или пока вы его не перезапишете.&lt;br /&gt;
Vim выполняет также «глобальные» подстановки. Допустим, вы решили переделать текст лицензии GPL с американского английского  на британский, заменив все слова ‘license’ на ‘licence’. Имеется два способа: ручной и автоматический. Ручной выглядит так: &lt;br /&gt;
# Перемещаемся к началу файла командой 1G &lt;br /&gt;
# Ищем первое вхождение ‘license’ при помощи /license&lt;br /&gt;
# Меняем его на ‘licence’, используя cwlicence&amp;lt;ESC&amp;gt;&lt;br /&gt;
# Ищем следующее вхождение при помощи n &lt;br /&gt;
# Если вы хотите и его заменить, наберите . (точка). Эта команда повторяет последнее сделанное изменение (в данном случае, команду cw)  в текущей позиции курсора &lt;br /&gt;
# Продолжайте так по всему файлу, используя n и . для повторения поиска и замены.&lt;br /&gt;
&lt;br /&gt;
Если вы просто хотите заменить ‘license’ на ‘licence’ во всем файле насквозь, без просмотра отдельных изменений, можете использовать команду подстановки нижней строки Vim. Для данного примера она выглядит так: &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 :1,$s/license/licence/g &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Рассмотрим ее поподробнее: &lt;br /&gt;
# Команда : переносит нас в режим нижней строки. &lt;br /&gt;
# Запись 1,$ указывает диапазон номеров строк. 1 – первая строка, а  $ означает последнюю. Если мне необходимо сделать замену только в первых 50-ти строках, я должен буду использовать здесь 1,50. &lt;br /&gt;
# Запись s/license/licence – простой пример команды подстановки &lt;br /&gt;
# g в конце означает ‘global’; то есть, если указанный текст содержится в строке больше одного раза, то заменить все экземпляры. Vim выдаст число сделанных замен и номера измененных строк. &lt;br /&gt;
&lt;br /&gt;
=== Опции ===&lt;br /&gt;
Для настройки Vi и Vim могут использоваться десятки изменяемых опций. Те, что я счел наиболее полезными, приведены в Таблице 2, но их намного больше. Для изменения опции следует использовать команду нижней строки set. Некоторые опции являются логическими – они принимают значения только on [включено] или off [выключено]. Например, для изменения опции автоотступа следует ввести :set autoindent (: служит для перехода в режим нижней строки, помните?). &lt;br /&gt;
Для выключения этой опции введите :set noautoindent. Имена многих опций к тому же имеют сокращения. Например, автоотступ можно укоротить до ‘ai’, так что :set ai и :set noai тоже сработают. Другие опции имеют строковые или числовые значения. Опция shiftwidth, например, указывает количество символьных позиций, используемых для отступа. Ясно, что это числовое значение, устанавливаемое как-то вроде :set shiftwidth=4. &lt;br /&gt;
&lt;br /&gt;
Можно определить «постоянные» значения опций (они будут читаться при каждом запуске Vim), поместив их в файл ~/.vimrc. Например, строка этого файла вида set sw=2 ai запустит Vim в режиме с автоотступом с величиной смещения 2. (Заметим, что в файле .vimrc нет : перед командой set). &lt;br /&gt;
&lt;br /&gt;
=== Фильтрация ===&lt;br /&gt;
Среди всех возможностей Vim, одна из моих любимых – это возможность обрабатывать текстовые буферы (или любую их часть) при помощи внешнего фильтра Linux.                   &lt;br /&gt;
&lt;br /&gt;
Фильтрация использует команду !, которая, как и команда d, требует сопутствующих перемещений курсора. Текст между текущей позицией курсора и тем местом, куда он переместится, следуя командам, пропускается через выбранные вами внешние команды, и результат их действия вновь вставляется в текстовый буфер вместо начального содержимого. При использовании команды ! курсор помещается в нижнюю строку, чтобы дать место для ввода команд фильтрации. Более детально о фильтрах я поговорю потом, но пара примеров поможет понять идею.&lt;br /&gt;
&lt;br /&gt;
Фильтр cat, с опцией -n, добавит к выводу номера строк.Последовательность команд 1G!Gcat -n выполнит следующее:&lt;br /&gt;
# Перемещение в начало файла (1G)&lt;br /&gt;
# Выбор всего файла для фильтрации (!G)&lt;br /&gt;
# Указание cat -n в качестве фильтра. (Эта часть команды будет выведена в нижней строке.)&lt;br /&gt;
&lt;br /&gt;
Заметьте, что вставка номеров строк этим способом и в самом деле добавляет их к буферу редактирования. Это не то же самое, что включение нумерации строк при помощи опции :set number, которая просто велит Vim нумеровать строки на экране.&lt;br /&gt;
&lt;br /&gt;
Другой пример: последовательность команд 1G!Gwc запустит wc для всего файла, чтобы выдать нам количество символов, слов и строк. Прочитав это, используйте команду u для отмены изменений и замены вывода команды wc исходным текстом.&lt;br /&gt;
&lt;br /&gt;
Наш третий пример фильтрации использует двойную форму команды ! (!!), для работы с полными строками, и использует grep и подходящее регулярное выражение для фильтрации пустых строк. Вот команда: 10!!grep -v ‘^$’. А вот как она работает:&lt;br /&gt;
# 10!! выбирает десять строк для фильтрации.&lt;br /&gt;
# Команда grep -v запускает grep для вывода строк, не соответствующих регулярному выражению.&lt;br /&gt;
# Регулярное выражение ^$ означает «начало строки, за которым сразу же идет конец строки» – то есть соответствует пустым строкам.&lt;br /&gt;
&lt;br /&gt;
=== Функции для программистов ===&lt;br /&gt;
В Vi и Vim имеется множество функций специально для программистов. Во-первых, имеется режим автоотступа, активируемый при помощи опции :set ai. При включенном автоотступе, по мере ввода текста,&lt;br /&gt;
Vim автоматически отодвигает новую строку в соответствии с предыдущей. Если необходимо, вы можете увеличить отступ при помощи ^T или уменьшить – ^D.&lt;br /&gt;
&lt;br /&gt;
Для исправления отступов существующих строк, используйте команды &amp;gt; и &amp;lt;. Они работают так же, как и команда d, и требуют указания перемещений курсора, так что &amp;gt;} увеличит отступ до конца абзаца (то есть до следующей пустой строки). Однако эти команды в основном используются в сдвоенном виде, например, 4&amp;gt;&amp;gt; сделает отступ у четырех строк.&lt;br /&gt;
&lt;br /&gt;
По умолчанию, отступ равняется восьми позициям – вероятно, это многовато. Вы можете изменить размер отступа (Vim называет это ‘shiftwidth’) командой вроде :set sw=4.&lt;br /&gt;
&lt;br /&gt;
Еще одна дружественная к программистам функция – способ управления различными типами скобок. Если курсор находится на скобке одного из типов (, ), {, }, [ или ], то ввод % переместит курсор к соответствующей скобке того же уровня вложенности. Конечно, вы можете использовать % для перемещения курсора так же, как и команды d, c или y, и если вы редактируете исходный код на языке C, в котором используются фигурные скобки для ограничения блоков, вы можете удалить блок очень просто, поместив курсор к открытой скобке и набрав d%.&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы установите опцию showmatch командой :set showmatch, Vi немедля переместит курсор к соответствующей открывающей скобке каждый раз, когда вы вставите закрывающую скобку, такую как ), } или ]. Исходный Vi не умеет этого делать с угловыми скобками – &amp;lt; и &amp;gt;, и Vim, по умолчанию, тоже; однако вы можете его заставить, добавив &amp;lt;:&amp;gt; к строке опции matchpairs по команде :set matchpairs+=&amp;lt;:&amp;gt; – это пригодится, если вы редактируете HTML или XML-документы.&lt;br /&gt;
&lt;br /&gt;
Кроме того, имеется подсветка синтаксиса, которую лично я не очень люблю, хоть и знаю, что многие программисты считают ее полезной. Исходный Vi ее не поддерживает, поскольку терминалы тех дней могли отображать только один цвет (обычно зеленый). В Vim она включается при помощи команды нижней строки :syntax enable. Vim автоматически распознает тип файла и загружает соответствующую цветовую схему.&lt;br /&gt;
&lt;br /&gt;
=== Мы только начали...===&lt;br /&gt;
Имеется еще много команд и опций Vim, для которых у нас просто нет места. Если вы читаете это, будучи экспертом Vi, и я пропустил вашу любимую функцию, пожалуйста, простите меня! Втиснуть в четыре страницы все, что пользователи Vi считают заслуживающим внимания, просто невозможно, так что рассматривайте это как беглое введение. Есть расширенная документация по Vim на www.vim.org/htmldoc/ и PDF-версия книги Стива Оллина [Steve Oualline] о Vim на www.truth.sk/vim/vimbook-OPL.pdf. И заметьте, что даже я готов признать: нужно быть большим энтузиастом редактора, чтобы для ознакомления с его работой пуститься читать 572-страничную книгу... &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Врезка ===&lt;br /&gt;
&lt;br /&gt;
==== Произносите правильно ====&lt;br /&gt;
Vi следует произносить как «ви-ай». Вы опозоритесь перед знатоками Unix, если произнесете это как «вай». И уж точно не следует говорить «шесть», как предложил один мой коллега, вообразивший, что он происходит от римлян...&lt;br /&gt;
&lt;br /&gt;
====Немного истории ====&lt;br /&gt;
Дизайн Vi станет более понятен, если рассматривать его в контексте устройств, существовавших в 1976 г., когда Билл Джой написал его. Типичным терминалом того времени был Lear-Siegler ADM3A, машина на основе ЭЛТ-монитора (перейдите по ссылке www.vintage-computer.com/otheritems.shtml – и увидите такую). ADM3A имел полную QWERTY-клавиатуру, но без функциональных клавиш и стрелок, имеющихся на современной клавиатуре. Дизайн Vi отражает эти ограничения: все перемещения курсора и операции редактирования могут быть выполнены без их использования.&lt;br /&gt;
&lt;br /&gt;
ADM3A был одним из первых терминалов, имевших адресуемый курсор (то есть вы могли отсылать ему специальные последовательности  ASCII-символов для определения места появления на экране следующего символа). Сейчас мы принимаем это как должное, но тогда это была новация, и она вызвала всплеск активности: люди стали писать настоящие «экранные редакторы» для замены прежних строковых редакторов. Такие терминалы подключались к компьютерам через последовательный порт – либо напрямую, либо при помощи телефонных соединений по модему, который тогда предоставлял скорость обмена 300 или (у везунчиков) 1,200 bps. В некоторых экранных редакторах после удаления строки и вставки пары слов вы могли за время обновления экрана успеть не то что выпить, а наварить пива. Одним из преимуществ Vi была эффективность обновления экрана, наряду с возможностью управлять большим числом терминалов, используя базу данных termcap. В последних версиях Vi и Vim все еще есть переменная среды TERM, определяющая тип терминала.&lt;br /&gt;
&lt;br /&gt;
==== Базовые команды ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+Перемещение курсора&lt;br /&gt;
|'''h,j,k,l'''&lt;br /&gt;
|Перемещение курсора на один символ влево, вниз, вверх, вправо&lt;br /&gt;
|-&lt;br /&gt;
|'''w'''&lt;br /&gt;
|Вперед на одно слово&lt;br /&gt;
|-&lt;br /&gt;
|'''b'''&lt;br /&gt;
|Назад на одно слово&lt;br /&gt;
|-&lt;br /&gt;
|'''0'''&lt;br /&gt;
|Начало строки(цифра ноль)&lt;br /&gt;
|-&lt;br /&gt;
|'''$'''&lt;br /&gt;
|Конец строки&lt;br /&gt;
|-&lt;br /&gt;
|'''('''&lt;br /&gt;
|Начало предложения&lt;br /&gt;
|-&lt;br /&gt;
|''')'''&lt;br /&gt;
|Конец предложения&lt;br /&gt;
|-&lt;br /&gt;
|'''{'''&lt;br /&gt;
|Начало абзаца&lt;br /&gt;
|-&lt;br /&gt;
|'''}'''&lt;br /&gt;
|Конец абзаца&lt;br /&gt;
|-&lt;br /&gt;
|'''G'''&lt;br /&gt;
|Конец файла&lt;br /&gt;
|-&lt;br /&gt;
|'''%'''&lt;br /&gt;
|Перейти к соответствующей парной скобке того же уровня&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+Поиск&lt;br /&gt;
|'''/string'''&lt;br /&gt;
|Первое вхождение строки (поиск вперед)&lt;br /&gt;
|-&lt;br /&gt;
|'''?string'''&lt;br /&gt;
|Первое вхождение строки (поиск вперед)&lt;br /&gt;
|-&lt;br /&gt;
|'''n'''&lt;br /&gt;
|Следующее вхождение(поиск продолжаеться в том же направлении)&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''&lt;br /&gt;
|Предыдущее вхождение(поиск продолжаеться в том же направлении)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+Переход в режим вставки&lt;br /&gt;
|'''i'''&lt;br /&gt;
|Вставить текст перед курсором&lt;br /&gt;
|-&lt;br /&gt;
|'''а'''&lt;br /&gt;
|Вставить текст после курсора&lt;br /&gt;
|-&lt;br /&gt;
|'''I'''&lt;br /&gt;
|Вставить текст в начало строки(заглавная 'i')&lt;br /&gt;
|-&lt;br /&gt;
|'''A'''&lt;br /&gt;
|Добавить текст в конец строки&lt;br /&gt;
|-&lt;br /&gt;
|'''o'''&lt;br /&gt;
|Создать новую строку выше текущей&lt;br /&gt;
|-&lt;br /&gt;
|'''O'''&lt;br /&gt;
|Создать новую строку ниже текущей&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+Редактирование текста&lt;br /&gt;
|'''x'''&lt;br /&gt;
|Удалить один символ&lt;br /&gt;
|-&lt;br /&gt;
|'''d'''&lt;br /&gt;
|Удалить (и скопировать в буфер удаления)&lt;br /&gt;
|-&lt;br /&gt;
|'''y'''&lt;br /&gt;
|Выдернуть (скопировать в буфер удаления)&lt;br /&gt;
|-&lt;br /&gt;
|'''p'''&lt;br /&gt;
|Положить (вставить) содержимое буфера удаления&lt;br /&gt;
|-&lt;br /&gt;
|'''c'''&lt;br /&gt;
|Изменить&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''&lt;br /&gt;
|Повторить последнее изменение (но в текущей позиции курсора)&lt;br /&gt;
|-&lt;br /&gt;
|'''u'''&lt;br /&gt;
|Отменить последнее изменение&lt;br /&gt;
|-&lt;br /&gt;
|'''J'''&lt;br /&gt;
|Объединить текущую строку с предыдущей&lt;br /&gt;
|-&lt;br /&gt;
|'''&amp;lt;'''&lt;br /&gt;
|Уменьшить отступ&lt;br /&gt;
|-&lt;br /&gt;
|'''&amp;gt;'''&lt;br /&gt;
|Увеличить отступ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Опции Vim ====&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
!'''Опции'''&lt;br /&gt;
!'''Аббревиатура'''&lt;br /&gt;
!'''Тип'''&lt;br /&gt;
!'''Что делает'''&lt;br /&gt;
|-&lt;br /&gt;
|number&lt;br /&gt;
|nu&lt;br /&gt;
|bool&lt;br /&gt;
|Включает нумерацию строк&lt;br /&gt;
|-&lt;br /&gt;
|showmode&lt;br /&gt;
|smd&lt;br /&gt;
|bool&lt;br /&gt;
|Заставляет Vim отображать название режима, используя метку в нижней строке&lt;br /&gt;
|-&lt;br /&gt;
|cindent&lt;br /&gt;
|cin&lt;br /&gt;
|bool&lt;br /&gt;
|Включает отступы в стиле C&lt;br /&gt;
|-&lt;br /&gt;
|ignorecase&lt;br /&gt;
|ic&lt;br /&gt;
|bool&lt;br /&gt;
|Игнорировать регистр при поиске&lt;br /&gt;
|-&lt;br /&gt;
|magic&lt;br /&gt;
| -&lt;br /&gt;
|bool&lt;br /&gt;
|Учитывать регистр при поиске&lt;br /&gt;
|-&lt;br /&gt;
|wrapmargin&lt;br /&gt;
|wm&lt;br /&gt;
|number&lt;br /&gt;
|Номер позиций относительно правого края экрана, где Vim вставит перенос строки в режиме вставки&lt;br /&gt;
|-&lt;br /&gt;
|autoindent&lt;br /&gt;
|ai&lt;br /&gt;
|bool&lt;br /&gt;
|Включение автоотступа&lt;br /&gt;
|-&lt;br /&gt;
|shiftwidth&lt;br /&gt;
|sw&lt;br /&gt;
|number&lt;br /&gt;
|Число символов отступа&lt;br /&gt;
|-&lt;br /&gt;
|matchpairs&lt;br /&gt;
|mps&lt;br /&gt;
|string&lt;br /&gt;
|Список парных символов, используемых для функции ‘showmatch’ и для команды %. Набор по умолчанию: matchpairs=(:),{:},[:]&lt;br /&gt;
|-&lt;br /&gt;
|wrapscan&lt;br /&gt;
|ws&lt;br /&gt;
|bool&lt;br /&gt;
|Осуществление поиска по тексту с конца файла к началу&lt;br /&gt;
|}&lt;/div&gt;</description>
			<pubDate>Thu, 13 Mar 2008 15:22:04 GMT</pubDate>			<dc:creator>StavNight0ver</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF96:Vim</comments>		</item>
	</channel>
</rss>