mirror of
https://github.com/vim/vim.git
synced 2025-07-04 23:07:33 -04:00
1195 lines
66 KiB
Plaintext
1195 lines
66 KiB
Plaintext
|
# ДОБРО ПОЖАЛОВАТЬ НА ЗАНЯТИЯ ПО РЕДАКТОРУ Vim
|
|||
|
|
|||
|
## ГЛАВА ПЕРВАЯ
|
|||
|
|
|||
|
Программа Vim — это очень мощный текстовый редактор, имеющий множество
|
|||
|
команд, и все их просто невозможно описать в рамках этого учебника.
|
|||
|
Данный же учебник призван объяснить те команды, которые позволят вам с
|
|||
|
лёгкостью использовать программу Vim в качестве редактора общего назначения.
|
|||
|
|
|||
|
Важно помнить, что этот учебник предназначен для практического обучения.
|
|||
|
Это означает, что вы должны применять команды для того, чтобы как следует
|
|||
|
их изучить. Если вы просто прочитаете этот текст, то не запомните команды!
|
|||
|
|
|||
|
Теперь, убедившись, что не включена клавиша `<CapsLock>`{normal},
|
|||
|
нажмите клавишу `j`{normal} несколько раз, так, чтобы урок 0 полностью
|
|||
|
поместился на экране.
|
|||
|
|
|||
|
# ВВОДНАЯ ЧАСТЬ
|
|||
|
|
|||
|
**Важно!**
|
|||
|
Выполняя задания уроков, вы будете изменять некоторый текст этих заданий,
|
|||
|
но эти изменения не будут сохранятся в файле. Так что не бойтесь что что‐то
|
|||
|
испортится; просто помните, что нажав клавишу [<ESC>](<Esc>) и затем клавишу
|
|||
|
[u](u) можно отменить последние сделанные изменения.
|
|||
|
|
|||
|
Это интерактивный учебник, и есть несколько важных моментов, о которых надо знать.
|
|||
|
‑ Если нажать клавишу [<ENTER>](<Enter>) когда каретка находится
|
|||
|
на [такой ссылке](holy-grail), то будет открыт связанный с ней раздел
|
|||
|
документации.
|
|||
|
‑ К тому же, если нажать клавишу [K](K) на любом слове, то будет выполнен поиск
|
|||
|
этого слова в документации.
|
|||
|
- Также в ходе урока вам потребуется изменять текст, например,
|
|||
|
как этот
|
|||
|
Если задание будет выполнено правильно, то значок ✗ справа изменится на ✓.
|
|||
|
Надеюсь, вы уже начинаете понимать насколько удобным может быть редактора Vim.
|
|||
|
- Либо может быть предложено набрать команду, похожую на эту (объяснение далее):
|
|||
|
~~~ cmd
|
|||
|
:help <ENTER>
|
|||
|
~~~
|
|||
|
или нажать последовательность клавиш
|
|||
|
~~~ normal
|
|||
|
<ESC>0f<SPACE>d3wP$P
|
|||
|
~~~
|
|||
|
Текст, заключённый в угловые скобки (вроде `<ENTER>`{normal}), означает клавиши,
|
|||
|
которые надо нажать на клавиатуре, а не текст который надо набирать.
|
|||
|
|
|||
|
Ну что ж, переходим к следующему уроку (используйте для этого клавишу `j`{normal}
|
|||
|
для прокрутки окна вниз).
|
|||
|
|
|||
|
|
|||
|
# Урок 1.1.1. ПЕРЕМЕЩЕНИЕ КАРЕТКИ
|
|||
|
|
|||
|
** Чтобы перемещать каретку в указанных направлениях, нажмите клавиши
|
|||
|
`h`, `j`, `k`, `l`**
|
|||
|
|
|||
|
↑ *Подсказка.*
|
|||
|
k Клавиша `h`{normal} слева и удобна для перемещения влево.
|
|||
|
← h l → Клавиша `l`{normal} справа и удобна для перемещения вправо.
|
|||
|
j Клавиша `j`{normal} похожа на стрелку »вниз».
|
|||
|
↓
|
|||
|
1. Перемещайте каретку в разных направлениях, пока не ощутите уверенность.
|
|||
|
|
|||
|
2. Удерживайте нажатой клавишу «вниз» (`j`{normal}) для беспрерывного
|
|||
|
перемещения каретки. Теперь вы знаете, как перейти к следующему уроку.
|
|||
|
|
|||
|
3. Используя клавишу «вниз», то есть `j`{normal}, перейдите к уроку 1.1.2
|
|||
|
|
|||
|
**Совет.**
|
|||
|
Если вы не уверены в правильности набранного текста, нажмите клавишу
|
|||
|
`<ESC>`{normal}, чтобы переключить редактор в режим команд.
|
|||
|
После этого повторите набор.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Клавиши управления курсором (стрелки) также должны работать.
|
|||
|
Но учтите, что немного потренировавшись вы поймёте, что намного быстрее
|
|||
|
перемещать каретку клавишами `h`{normal} `j`{normal} `k`{normal} `l`{normal}
|
|||
|
|
|||
|
|
|||
|
# Урок 1.1.2. ЗАВЕРШЕНИЕ РАБОТЫ ПРОГРАММЫ *1-1-2*
|
|||
|
|
|||
|
**ВНИМАНИЕ!** Перед выполнением описанных ниже действий, прочтите урок полностью!
|
|||
|
|
|||
|
1. Нажмите клавишу `<ESC>`{normal} (чтобы убедиться, что включен режим команд).
|
|||
|
|
|||
|
2. Наберите
|
|||
|
|
|||
|
`:q!`{vim} `<ENTER>`{normal}
|
|||
|
|
|||
|
Это означает, что надо набрать три символа : q ! и нажать клавишу <ВВОД>
|
|||
|
Исполнение этой команды вызовет завершение работы редактора БЕЗ СОХРАНЕНИЯ
|
|||
|
любых сделанных изменений.
|
|||
|
|
|||
|
3. Снова запустите редактор Vim и повторно наберите команду, через которую вы
|
|||
|
открыли этот учебник. Это может быть
|
|||
|
|
|||
|
`:Tutor`{vim} `<ENTER>`{normal}
|
|||
|
|
|||
|
4. Если уверены в том, что поняли смысл вышесказанного, выполните шаги
|
|||
|
с 1 до 3, чтобы завершить работу и снова запустить редактор.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
По команде [:q!](:q) `<ENTER>`{normal} будут сброшены сделанные изменения.
|
|||
|
Через несколько уроков вы узнаете как сохранять изменения в файл.
|
|||
|
|
|||
|
5. Переместите каретку вниз к уроку [1.1.3](*1-1-3*).
|
|||
|
|
|||
|
|
|||
|
# Урок 1.1.3. РЕДАКТИРОВАНИЕ — УДАЛЕНИЕ ТЕКСТА *1-1-3*
|
|||
|
|
|||
|
** Чтобы удалить символ под кареткой, нажмите клавишу `x`{normal} **
|
|||
|
|
|||
|
1. Переместите каретку к строке помеченной ✗.
|
|||
|
|
|||
|
2. Чтобы исправить ошибки, перемещайте каретку, пока она не окажется над
|
|||
|
удаляемым символом.
|
|||
|
|
|||
|
3. Нажмите клавишу [x](x) для удаления требуемого символа.
|
|||
|
|
|||
|
4. Повторите шаги со 2 по 4, пока строка не будет исправлена.
|
|||
|
|
|||
|
От тттопота копытт пппыль ппо ппполю леттитт.
|
|||
|
|
|||
|
5. Теперь, когда строка исправлена, переходите к уроку [1.1.4](*1-1-4*).
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
В ходе этих занятий не пытайтесь сразу всё запоминать, учитесь в процессе
|
|||
|
работы.
|
|||
|
|
|||
|
|
|||
|
# Урок 1.1.4. РЕДАКТИРОВАНИЕ — ВСТАВКА ТЕКСТА *1-1-4*
|
|||
|
|
|||
|
** Чтобы вставить текст, нажмите клавишу `i`{normal} **
|
|||
|
|
|||
|
1. Переместите каретку к первой строке помеченной ✗.
|
|||
|
|
|||
|
2. Чтобы сделать первую строку идентичной второй, установите каретку на тот
|
|||
|
символ, ПЕРЕД которым следует вставить текст.
|
|||
|
|
|||
|
3. Нажмите клавишу [i](i) и наберите текст, который требуется вставить.
|
|||
|
|
|||
|
4. После исправления каждого ошибочного слова, нажмите клавишу `<ESC>`{normal}
|
|||
|
для переключения в режим команд.
|
|||
|
|
|||
|
Повторите шаги со 2 по 4, пока предложение не будет исправлено полностью.
|
|||
|
|
|||
|
Часть текта в строке бесследно .
|
|||
|
Часть текста в этой строке бесследно пропало.
|
|||
|
|
|||
|
5. Когда освоите вставку текста, переходите к уроку [1.1.5](*1-1-5*).
|
|||
|
|
|||
|
|
|||
|
# Урок 1.1.5. РЕДАКТИРОВАНИЕ — ДОБАВЛЕНИЕ ТЕКСТА *1-1-5*
|
|||
|
|
|||
|
** Чтобы добавить текст, нажмите клавишу `A`{normal} **
|
|||
|
|
|||
|
1. Переместите каретку к первой строке помеченной ✗.
|
|||
|
Сейчас неважно, на каком символе расположена каретка в этой строке.
|
|||
|
|
|||
|
2. Нажмите клавишу [A](A) и наберите текст, который требуется добавить.
|
|||
|
|
|||
|
3. После добавления текста нажмите клавишу `<ESC>`{normal} для возврата
|
|||
|
в режим команд.
|
|||
|
|
|||
|
4. Переместите каретку на следующую строку, помеченную ✗
|
|||
|
и повторите шаги со 2 по 3 для исправления этой строки.
|
|||
|
|
|||
|
Часть текста в этой строке бессле
|
|||
|
Часть текста в этой строке бесследно пропало.
|
|||
|
Здесь также недостаёт час
|
|||
|
Здесь также недостаёт части текста.
|
|||
|
|
|||
|
5. Когда освоите добавление текста, переходите к уроку [1.1.6](*1-1-6*).
|
|||
|
|
|||
|
|
|||
|
# УРОК 1.1.6. РЕДАКТИРОВАНИЕ И ЗАПИСЬ ФАЙЛА *1-1-6*
|
|||
|
|
|||
|
** Чтобы сохранить файл и закрыть редактор, используйте команды `:wq`{vim} **
|
|||
|
|
|||
|
**ВНИМАНИЕ!** Перед выполнением описанных ниже действий, прочтите урок полностью!
|
|||
|
|
|||
|
1. Завершите работу редактора Vim, как указано в уроке [1.1.2](*1-1-2*)
|
|||
|
`:q!`{vim}
|
|||
|
Если есть доступ к другому терминалу, то там можете сделать следующее:
|
|||
|
|
|||
|
2. В приглашении командной оболочки введите команду
|
|||
|
~~~ sh
|
|||
|
$ vim tutor
|
|||
|
~~~
|
|||
|
где vim - команда для запуска редактора Vim, а tutor - наименование
|
|||
|
файла для редактирования. Укажите такой файл, который можно изменять.
|
|||
|
|
|||
|
3. Вставляйте и удаляйте текст, как описано в предыдущих уроках.
|
|||
|
|
|||
|
4. Сохраните этот изменённый файл и завершите работу программы Vim,
|
|||
|
набрав команду
|
|||
|
~~~ cmd
|
|||
|
:wq
|
|||
|
~~~
|
|||
|
5. Если вы вышли из vimtutor на шаге 1, перезапустите vimtutor и переходите
|
|||
|
далее к резюме.
|
|||
|
|
|||
|
6. После того как вы прочли и поняли вышесказанное, выполните описанные шаги.
|
|||
|
|
|||
|
|
|||
|
# РЕЗЮМЕ УРОКА 1.1
|
|||
|
|
|||
|
1. Каретку можно перемещать либо клавишами со стрелками, либо клавишами hjkl.
|
|||
|
h (влево) j (вниз) k (вверх) l (вправо)
|
|||
|
|
|||
|
2. Чтобы запустить редактор Vim из приглашения командной оболочки, наберите
|
|||
|
~~~ sh
|
|||
|
$ vim ФАЙЛ
|
|||
|
~~~
|
|||
|
3. Чтобы завершить работу редактора Vim, выполните одно из следующих:
|
|||
|
`<ESC>`{normal} `:q!`{vim} `<ENTER>`{normal}
|
|||
|
по этой команде не будут сохранены изменения;
|
|||
|
или
|
|||
|
`<ESC>`{normal} `:wq`{vim} `<ENTER>`{normal}
|
|||
|
по этой команде будут сохранены изменения.
|
|||
|
|
|||
|
4. Чтобы удалить символ под кареткой, нажмите клавишу `x`{normal}.
|
|||
|
|
|||
|
5. Чтобы вставить текст перед кареткой:
|
|||
|
`i`{normal} вставляемый текст `<ESC>`{normal}
|
|||
|
Чтобы добавить текст в конце строки:
|
|||
|
`A`{normal} добавляемый текст `<ESC>`{normal}
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
По нажатию клавиши `<ESC>`{normal} будет выполнено переключение редактора
|
|||
|
в режим команд с прерыванием обработки любой ранее набранной команды.
|
|||
|
|
|||
|
Теперь переходите к уроку [1.2](*1-2-1*).
|
|||
|
|
|||
|
|
|||
|
# Урок 1.2.1. КОМАНДЫ УДАЛЕНИЯ *1-2-1*
|
|||
|
|
|||
|
** Чтобы удалить слово под кареткой, используйте команду `dw`{vim} **
|
|||
|
|
|||
|
1. Переключите редактор в режим команд, нажав клавишу `<ESC>`{normal}.
|
|||
|
|
|||
|
2. Переместите каретку к строке помеченной ✗
|
|||
|
|
|||
|
3. Установите каретку на начало слова, которое следует удалить.
|
|||
|
|
|||
|
4. Наберите [dw](dw) для удаления этого слова.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
При наборе оператора `d`{normal} он отобразится в самой нижней строке справа,
|
|||
|
и программа будет ожидать ввода следующей команды,
|
|||
|
в данном случае - `w`{normal} (объект слово).
|
|||
|
Если что-то не получается, нажмите клавишу `<ESC>`{normal} и начните сначала.
|
|||
|
|
|||
|
Несколько слов рафинад в этом предложении автокран излишни.
|
|||
|
|
|||
|
5. Повторите шаги 3 и 4, пока не исправите все ошибки, и переходите
|
|||
|
к уроку [1.2.2](*1-2-2*).
|
|||
|
|
|||
|
|
|||
|
# Урок 1.2.2. ЕЩЁ ОДНА КОМАНДА УДАЛЕНИЯ *1-2-2*
|
|||
|
|
|||
|
** Чтобы удалить текст до конца строки, используйте команду `d$`{vim} **
|
|||
|
|
|||
|
1. Переключите редактор в режим команд, нажав клавишу `<ESC>`{normal}.
|
|||
|
|
|||
|
2. Переместите каретку к строке помеченной ✗
|
|||
|
|
|||
|
3. Установите каретку после корректного предложения (ПОСЛЕ первой точки).
|
|||
|
|
|||
|
4. Наберите [d$](d$) для удаления остатка строки.
|
|||
|
|
|||
|
Кто-то набрал окончание этой строки дважды. окончание этой строки дважды.
|
|||
|
|
|||
|
5. Чтобы лучше разобраться в том как это происходит,
|
|||
|
обратитесь к уроку [1.2.3](*1-2-3*).
|
|||
|
|
|||
|
|
|||
|
# Урок 1.2.3. ОПЕРАТОРЫ И ОБЪЕКТЫ *1-2-3*
|
|||
|
|
|||
|
Многие команды, изменяющие текст, являются составными и формируются
|
|||
|
из [оператора](operator) и [объекта](navigation), к которому применяется
|
|||
|
этот оператор.
|
|||
|
Так, например, формат команды удаления с оператором [d](d) следующий:
|
|||
|
|
|||
|
d объект
|
|||
|
где
|
|||
|
d - оператор удаления;
|
|||
|
объект - область текста (указаны ниже), к которой будет применён оператор.
|
|||
|
|
|||
|
Краткий перечень объектов:
|
|||
|
[w](w) - от позиции каретки до конца слова, включая последующий пробел;
|
|||
|
[e](e) - от позиции каретки до конца слова, исключая последующий пробел;
|
|||
|
[$]($) - от позиции каретки до конца строки, включая последний символ.
|
|||
|
|
|||
|
Таким образом, ввод команды `de`{normal} вызывает удаление текста
|
|||
|
от позиции каретки до конца слова.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Если в режиме команд, без ввода оператор, нажать клавишу с символом,
|
|||
|
с которым ассоциирован объект, то каретка будет перемещена так, как
|
|||
|
указано в перечне объектов.
|
|||
|
|
|||
|
|
|||
|
# Урок 1.2.4. ПРИМЕНЕНИЕ СЧЁТЧИКА СОВМЕСТНО С ОБЪЕКТАМИ
|
|||
|
|
|||
|
** Чтобы перемещение каретка выполнялось необходимое количество раз,
|
|||
|
укажите перед объектом требуемое число **
|
|||
|
|
|||
|
1. Установите каретку на начало строки помеченной ✓
|
|||
|
|
|||
|
2. Наберите `2w`{normal} для перемещения каретки вперёд к началу второго слова.
|
|||
|
|
|||
|
3. Наберите `3e`{normal} для перемещения каретки вперёд к концу третьего слова.
|
|||
|
|
|||
|
4. Наберите `0`{normal} ([ноль](0)) для перемещения каретки к началу строки.
|
|||
|
|
|||
|
5. Повторите шаги 2 и 3 с различными значениями чисел.
|
|||
|
|
|||
|
Обычная строка из слов, чтобы вы на ней потренировались перемещать каретку.
|
|||
|
|
|||
|
6. Когда освоите это, переходите к уроку [1.2.5.](*1-2-5*)
|
|||
|
|
|||
|
|
|||
|
# Урок 1.2.5. ПРИМЕНЕНИЕ СЧЁТЧИКА ДЛЯ МНОЖЕСТВЕННОГО УДАЛЕНИЯ *1-2-5*
|
|||
|
|
|||
|
** Чтобы применить оператор несколько раз, укажите число требуемых повторов **
|
|||
|
|
|||
|
Используя приведённые ранее составные команды удаления и перемещения,
|
|||
|
укажите перед объектом число повторов выполнения операции удаления.
|
|||
|
|
|||
|
d число объект
|
|||
|
|
|||
|
1. Установите каретку на первом слове из прописных букв в строке ✗
|
|||
|
|
|||
|
2. Наберите `d2w`{normal} для удаления двух идущих друг за другом слов
|
|||
|
из прописных букв.
|
|||
|
|
|||
|
3. Повторите шаги 1 и 2 с указанием других числовых значений, чтобы удалить
|
|||
|
группы слов из прописных букв одной командой.
|
|||
|
|
|||
|
Эта АБВ ГД строка ЕЖЗИ КЛ МНО очищена от П РС ТУФ лишних слов.
|
|||
|
|
|||
|
|
|||
|
# Урок 1.2.6. ОПЕРАЦИИ СО СТРОКАМИ
|
|||
|
|
|||
|
** Чтобы удалить строку целиком, используйте команду `dd`{normal} **
|
|||
|
|
|||
|
Так как часто требуется выполнять удаление всей строки целиком, создатели
|
|||
|
редактора решили облегчить этот процесс, и предложили для этого просто
|
|||
|
дважды нажать на клавишу с буквой d.
|
|||
|
|
|||
|
1. Переместите каретку к строке номер два.
|
|||
|
2. Наберите [dd](dd) для удаления строки.
|
|||
|
3. Теперь переместите каретку к строке номер четыре.
|
|||
|
4. Наберите `2dd`{normal} для удаления двух строк подряд.
|
|||
|
|
|||
|
1) Летом я хожу на стадион,
|
|||
|
2) О, как внезапно кончился диван!
|
|||
|
3) Я болею за «Зенит», «Зенит» — чемпион!
|
|||
|
4) Печально я гляжу на наше поколенье!
|
|||
|
5) Его грядущее — иль пусто, иль темно...
|
|||
|
6) Я сижу на скамейке в ложе «Б»
|
|||
|
7) И играю на большой жестяной трубе
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Дублирование оператора для обработки целой строки применяется и с другими
|
|||
|
операторами, о которых говорится далее.
|
|||
|
|
|||
|
|
|||
|
# Урок 1.2.7. КОМАНДА ОТМЕНЫ
|
|||
|
|
|||
|
** Чтобы отменить результат предыдущей команды, нажмите клавишу `u`{normal}
|
|||
|
Чтобы отменить правки для всей строки, нажмите клавишу `U`{normal} **
|
|||
|
|
|||
|
1. Установите каретку на первой ошибке, в строке помеченной ✗
|
|||
|
|
|||
|
2. Нажмите клавишу `x`{normal} для удаления первого ошибочного символа.
|
|||
|
|
|||
|
3. Теперь нажмите клавишу `u`{normal} для отмены последней выполненной команды.
|
|||
|
|
|||
|
4. Исправьте все ошибки в строке, используя команду `x`{normal}.
|
|||
|
|
|||
|
5. Теперь нажмите клавишу `U`{normal}, чтобы вернуть всю строку
|
|||
|
в исходное состояние.
|
|||
|
|
|||
|
6. Нажмите клавишу `u`{normal} несколько раз для отмены команды `U`{normal}
|
|||
|
и предыдущих команд.
|
|||
|
|
|||
|
7. Теперь нажмите клавиши `<CTRL-r>`{normal} (т. е. удерживая клавишу `<CTRL>`,
|
|||
|
нажмите клавишу `r`) несколько раз для возврата действий команд.
|
|||
|
|
|||
|
Испрравьте оошибки в этойй строке и вернитте их сс помощьью команды «отмена».
|
|||
|
|
|||
|
8. Это очень нужные и полезные команды.
|
|||
|
|
|||
|
Далее переходите к резюме урока [1.2](*1-2*).
|
|||
|
|
|||
|
|
|||
|
# РЕЗЮМЕ УРОКА 1.2
|
|||
|
|
|||
|
1. Чтобы удалить слово, установите каретку в его начало и наберите `dw`{normal}
|
|||
|
|
|||
|
2. Чтобы удалить текст от позиции каретки до конца слова, наберите `de`{normal}
|
|||
|
|
|||
|
3. Чтобы удалить текст от позиции каретки до конца строки, наберите `d$`{normal}
|
|||
|
|
|||
|
4. Чтобы удалить всю строку целиком, наберите `dd`{normal}
|
|||
|
|
|||
|
5. Чтобы переместить каретку за один раз на некоторое количество объектов,
|
|||
|
укажите их число, например, `2w`{normal}
|
|||
|
|
|||
|
6. Формат команд изменения:
|
|||
|
оператор [число] объект
|
|||
|
где
|
|||
|
оператор - необходимые действия, например, [d](d) для удаления;
|
|||
|
[число] - количество подпадающих под действие оператора объектов,
|
|||
|
если не указано, то один объект;
|
|||
|
объект - на что воздействует оператор, например, [w](w) (слово),
|
|||
|
[$]($) (всё, что есть до конца строки) и т. п.
|
|||
|
|
|||
|
7. Чтобы переместить каретку к началу строки, нажмите клавишу [0](0) (ноль)
|
|||
|
|
|||
|
8. Чтобы отменить предшествующие действие, нажмите `u`{normal} (строчная u)
|
|||
|
Чтобы отменить все изменения в строке, нажмите `U`{normal} (прописная U)
|
|||
|
Чтобы вернуть отменённые изменения, нажмите `<CTRL-r>`{normal}
|
|||
|
|
|||
|
|
|||
|
# Урок 1.3.1. КОМАНДА ВСТАВКИ
|
|||
|
|
|||
|
** Чтобы вставить последний удалённый текст, наберите команду `p`{normal} **
|
|||
|
|
|||
|
1. Переместите каретку к первой строке помеченной ✓
|
|||
|
|
|||
|
2. Наберите `dd`{normal}, чтобы удалить строку, при этом она будет
|
|||
|
автоматически помещена в специальный регистр редактора Vim.
|
|||
|
|
|||
|
3. Установите каретку на строку ВЫШЕ той, в которой следует вставить
|
|||
|
удалённую строку.
|
|||
|
|
|||
|
4. Убедитесь, что программа в режиме команд и нажмите клавишу [p](p)
|
|||
|
для вставки строки ниже позиции каретки.
|
|||
|
|
|||
|
5. Повторите шаги со 2 по 4, пока не расставите все строки в нужном порядке.
|
|||
|
|
|||
|
г) И лучше выдумать не мог.
|
|||
|
б) Когда не в шутку занемог,
|
|||
|
в) Он уважать себя заставил
|
|||
|
а) Мой дядя самых честных правил
|
|||
|
|
|||
|
|
|||
|
# Урок 1.3.2. КОМАНДА ЗАМЕНЫ
|
|||
|
|
|||
|
** Чтобы заменить символ под кареткой, наберите `r`{normal} и заменяющий символ **
|
|||
|
|
|||
|
1. Переместите каретку к первой строке помеченной ✗
|
|||
|
|
|||
|
2. Установите каретку так, чтобы она находилась над первым ошибочным символом.
|
|||
|
|
|||
|
3. Нажмите клавишу [r](r) и затем наберите символ, исправляющий ошибку.
|
|||
|
|
|||
|
4. Повторите шаги 2 и 3, пока первая строка не будет соответствовать второй.
|
|||
|
|
|||
|
В момегт набтра этой чтроки кое0кто с трудом попвдал по клваишам!
|
|||
|
В момент набора этой строки кое-кто с трудом попадал по клавишам!
|
|||
|
|
|||
|
5. Теперь переходите к уроку [1.3.3](*1-3-3*).
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Помните, что вы должны учиться в процессе работы, а не просто зубрить.
|
|||
|
|
|||
|
|
|||
|
# Урок 1.3.3. ОПЕРАТОР ИЗМЕНЕНИЯ *1-3-3*
|
|||
|
|
|||
|
** Чтобы изменить окончание слова, наберите команду `ce`{normal} **
|
|||
|
|
|||
|
1. Переместите каретку к первой строке помеченной ✗
|
|||
|
|
|||
|
2. Установите каретку над буквой «o» в слове «сола».
|
|||
|
|
|||
|
3. Наберите команду `ce`{normal} и исправьте слово
|
|||
|
(в данном случае, наберите «лов»).
|
|||
|
|
|||
|
4. Нажмите клавишу `<ESC>`{normal} и переместите каретку к следующей ошибке
|
|||
|
(к первому символу, начиная с которого надо изменить окончание слова).
|
|||
|
|
|||
|
5. Повторите шаги 3 и 4 пока первая строка не будет соответствовать второй.
|
|||
|
|
|||
|
Несколько сола в эьгц строке тпгшцбь истравыиться.
|
|||
|
Несколько слов в этой строке требуется исправить.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Обратите внимание, что по команде `ce`{normal} не только удаляется часть
|
|||
|
слова, но и происходит переключение редактора в режим вставки.
|
|||
|
По команде `cc`{normal} будет выполнятся то же самое, но для целой строки.
|
|||
|
|
|||
|
|
|||
|
# УРОК 1.3.4. ЕЩЁ НЕСКОЛЬКО СПОСОБОВ РАБОТЫ С ОПЕРАТОРОМ ИЗМЕНЕНИЯ `c`{normal}
|
|||
|
|
|||
|
** К оператору изменения применимы те же объекты, что и к оператору удаления **
|
|||
|
|
|||
|
1. Оператор изменения работает аналогично оператору удаления. Формат команды:
|
|||
|
|
|||
|
c [число] объект
|
|||
|
|
|||
|
2. Объекты - это то же самое, что и ранее: `w`{normal} (слово),
|
|||
|
`$`{normal} (конец строки) и т. п.
|
|||
|
|
|||
|
3. Переместите каретку к первой строке помеченной ✗
|
|||
|
|
|||
|
4. Установите каретку на первой ошибке.
|
|||
|
|
|||
|
5. Наберите `c$`{normal} и отредактируйте первую строку так, чтобы она
|
|||
|
совпадала со второй, после чего нажмите клавишу `<ESC>`{normal}.
|
|||
|
|
|||
|
Окончание этой строки нужно сделать похожим как во второй строке.
|
|||
|
Окончание этой строки нужно исправить через команду c$.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Клавиша `<BACKSPACE>`{normal} используется для исправления при наборе текста.
|
|||
|
|
|||
|
|
|||
|
# РЕЗЮМЕ УРОКА 1.3
|
|||
|
|
|||
|
1. Чтобы вставить текст, который был только что удалён, наберите команду [p](p).
|
|||
|
Текст будет вставлен ПОСЛЕ позиции каретки (если была удалена строка,
|
|||
|
то она будет помещена в строке ниже строки с кареткой).
|
|||
|
|
|||
|
2. Чтобы заменить символ под кареткой, наберите команду [r](r) и затем
|
|||
|
заменяющий символ.
|
|||
|
|
|||
|
3. [Операторы изменения](c) изменяют указанный объект текста от позиции каретки
|
|||
|
до конечной точки перемещения.
|
|||
|
Например, по команде `ce`{normal} можно изменить текст от позиции каретки
|
|||
|
до конца слова, а по команде `c$`{normal} - до конца строки.
|
|||
|
|
|||
|
4. Формат команд изменения:
|
|||
|
|
|||
|
c [число] объект
|
|||
|
|
|||
|
где c - оператор изменения;
|
|||
|
[число] - количество изменяемых объектов (необязательная часть);
|
|||
|
объект - объект текста, который будет изменён.
|
|||
|
|
|||
|
Теперь переходите к следующему уроку.
|
|||
|
|
|||
|
|
|||
|
# УРОК 1.4.1. ИНФОРМАЦИЯ О ФАЙЛЕ И ПОЗИЦИЯ КАРЕТКИ
|
|||
|
|
|||
|
** Чтобы получить информацию о файле и позиции каретки, нажмите `<CTRL-g>`{normal}
|
|||
|
Чтобы переместить каретку к заданной строке в файле, нажмите `G`{normal} **
|
|||
|
|
|||
|
**ВНИМАНИЕ!** Прочитайте весь урок, прежде чем выполнять любые действия!
|
|||
|
|
|||
|
1. Удерживая клавишу `<CTRL>`{normal}, нажмите клавишу `g`{normal}.
|
|||
|
Внизу экрана появится сообщение с наименованием файла и номером строки,
|
|||
|
в которой находится каретка. Запомните этот номер строки,
|
|||
|
он потребуется на шаге 3.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Позиция каретки может отображаться в правом нижнем углу окна программы,
|
|||
|
если установлен параметр ['ruler']('ruler').
|
|||
|
|
|||
|
2. Нажмите клавишу [G](G) для перемещения каретки на последнюю строку файла.
|
|||
|
Теперь наберите [gg](gg) для перемещения каретки на первую строку файла.
|
|||
|
|
|||
|
3. Наберите номер строки, которой был получен на шаге 1, и нажмите клавишу
|
|||
|
`G`{normal}. Каретка будет перемещена в ту строку, где она находилась,
|
|||
|
когда в первый раз были нажаты клавиши `<CTRL-g>`{normal}.
|
|||
|
|
|||
|
4. Если вы запомнили всё вышесказанное, выполните шаги с 1 по 3.
|
|||
|
|
|||
|
|
|||
|
# Урок 1.4.2. КОМАНДЫ ПОИСКА
|
|||
|
|
|||
|
** Чтобы что-то найти, наберите команду `/`{normal} и введите искомую фразу **
|
|||
|
|
|||
|
1. В режиме команд наберите символ `/`{normal}.
|
|||
|
Обратите внимание, что этот символ будет отображаться внизу экрана. Так же,
|
|||
|
как и при наборе команды `:`{normal}
|
|||
|
|
|||
|
2. Теперь наберите ошшшибка `<ENTER>`{normal}.
|
|||
|
Это то слово, которое требуется найти.
|
|||
|
|
|||
|
3. Чтобы повторить поиск искомого слова, просто нажмите клавишу [n](n).
|
|||
|
Чтобы искать это слово в обратном направлении, нажмите клавиши [N](N).
|
|||
|
|
|||
|
4. Если требуется сразу выполнить поиск в обратном направлении, используйте
|
|||
|
команду [?](?) вместо команды `/`{normal}.
|
|||
|
|
|||
|
5. Чтобы вернуться туда, откуда был начат поиск, нажмите несколько раз
|
|||
|
клавиши `<CTRL-o>`{normal}.
|
|||
|
Для перехода вперёд, используйте команду `<CTRL-i>`{normal}.
|
|||
|
|
|||
|
"ошшшибка" это не способ написания слова "ошибка"; ошшшибка — это ошибка.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Если будет достигнут конец файла, то поиск будет продолжен от начала файла.
|
|||
|
|
|||
|
|
|||
|
# Урок 1.4.3. ПОИСК ПАРНЫХ СКОБОК
|
|||
|
|
|||
|
** Чтобы найти парную скобку для (, [ или {, наберите команду `%`{normal} **
|
|||
|
|
|||
|
1. Поместите каретку на любой из скобок (, [ или { в строке помеченной ✓
|
|||
|
|
|||
|
2. Теперь нажмите на клавиатуре клавишу с символом [%](%).
|
|||
|
|
|||
|
3. Каретка будет перемещена на парную скобку для той скобки, на которой
|
|||
|
установлена каретка.
|
|||
|
|
|||
|
4. Наберите `%`{normal} для возврата каретки назад к первой парной скобке.
|
|||
|
|
|||
|
В этой ( строке есть такие (, такие [ ] и { такие } скобки. ))
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Это очень удобно при отладке программ, когда в коде пропущены скобки!
|
|||
|
|
|||
|
|
|||
|
# Урок 1.4.4. СПОСОБ ЗАМЕНЫ СЛОВ
|
|||
|
|
|||
|
** Чтобы «что-то» заменить «чем-то», наберите команду `:s/что/чем/g`{vim} **
|
|||
|
|
|||
|
1. Переместите каретку к строке помеченной ✗
|
|||
|
|
|||
|
2. Наберите
|
|||
|
~~~ cmd
|
|||
|
:s/уводю/увожу/
|
|||
|
~~~
|
|||
|
Обратите внимание на то, что по этой команде будет замена только первого
|
|||
|
найденного вхождение в строке.
|
|||
|
|
|||
|
3. Теперь наберите
|
|||
|
~~~ cmd
|
|||
|
:s/уводю/увожу/g
|
|||
|
~~~
|
|||
|
Здесь добавленный [флаг](:s_flags) 'g' означает замена во всей строке.
|
|||
|
Будет выполнена замена всех найденных в строке совпадений.
|
|||
|
|
|||
|
Я уводю к отверженным селеньям, я уводю сквозь вековечный стон, я уводю к забытым поколеньям.
|
|||
|
|
|||
|
4. Чтобы заменить все вхождения искомого слова в каком-то диапазоне строк,
|
|||
|
наберите
|
|||
|
~~~ cmd
|
|||
|
:#,#s/что/чем/g
|
|||
|
~~~
|
|||
|
где #,# - номер начальной и конечной строки диапазона,
|
|||
|
в котором будет выполнена замена.
|
|||
|
|
|||
|
Наберите
|
|||
|
~~~ cmd
|
|||
|
:%s/что/чем/g
|
|||
|
~~~
|
|||
|
чтобы заменить все вхождения во всём файле.
|
|||
|
|
|||
|
Наберите
|
|||
|
~~~ cmd
|
|||
|
:%s/что/чем/gc
|
|||
|
~~~
|
|||
|
чтобы выдавался запрос подтверждения перед каждой заменой.
|
|||
|
|
|||
|
|
|||
|
# РЕЗЮМЕ УРОКА 1.4
|
|||
|
|
|||
|
1. По приведённым ниже командам будет выполнено:
|
|||
|
`<CTRL-g>`{normal} - вывод информации о файле и текущей позиции каретки
|
|||
|
в этом файле
|
|||
|
`G`{normal} - переход на последнюю строку файла
|
|||
|
номер и `G`{normal} - переход на строку с указанным номером
|
|||
|
`gg`{normal} - переход на первую строку файла
|
|||
|
|
|||
|
2. При вводе символа `/`{normal} с последующим набором слова, будет выполнен
|
|||
|
поиск этого слова ВПЕРЁД по тексту.
|
|||
|
При вводе символа `?`{normal} с последующим набором слова, будет выполнен
|
|||
|
поиск этого слова НАЗАД по тексту.
|
|||
|
После показа первого совпадения, нажмите `n`{normal} для перехода
|
|||
|
к следующему слову в том же направлении поиска или `N`{normal} для поиска
|
|||
|
в противоположном направлении.
|
|||
|
При нажатии клавиш `<CTRL-o>`{normal} будет возврат к предыдущему слову,
|
|||
|
а при нажатии клавиш `<CTRL-i>`{normal} будет переход к ранее найденному
|
|||
|
слову.
|
|||
|
|
|||
|
3. При нажатии `%`{normal}, когда каретка на одной из скобок ( ), [ ] или { },
|
|||
|
будет найдена её парная скобка.
|
|||
|
|
|||
|
4. Чтобы заменить первое найденное слово в строке, наберите
|
|||
|
~~~ cmd
|
|||
|
:s/что/чем
|
|||
|
~~~
|
|||
|
Чтобы заменить все найденные слова в строке, наберите
|
|||
|
~~~ cmd
|
|||
|
:s/что/чем/g
|
|||
|
~~~
|
|||
|
Чтобы заменить в указанными диапазоне строк, наберите
|
|||
|
~~~ cmd
|
|||
|
:#,#s/что/чем/g
|
|||
|
~~~
|
|||
|
Чтобы заменить все найденные слова в файле, наберите
|
|||
|
~~~ cmd
|
|||
|
:%s/что/чем/g
|
|||
|
~~~
|
|||
|
Чтобы запрашивалось подтверждение для каждой замены, добавьте флаг 'c'
|
|||
|
~~~ cmd
|
|||
|
:%s/что/чем/gc
|
|||
|
~~~
|
|||
|
|
|||
|
# Урок 1.5.1. КАК ВЫЗВАТЬ ИЗ РЕДАКТОРА ВНЕШНЮЮ КОМАНДУ
|
|||
|
|
|||
|
** Чтобы вызвать команду командной оболочки, наберите в редакторе `:!`{vim} **
|
|||
|
|
|||
|
1. Наберите уже знакомую команду `:`{normal}, чтобы каретка была установлена
|
|||
|
в командной строке редактора и можно было ввести необходимую команду.
|
|||
|
|
|||
|
2. Теперь наберите символ [!](!cmd) (восклицательный знак). По этой команде
|
|||
|
будет вызвана указанная следующей внешняя команда командной оболочки.
|
|||
|
|
|||
|
3. Например, наберите "ls" сразу после "!" и нажмите `<ENTER>`{normal}.
|
|||
|
Будет выведен перечень файлов в текущем каталоге. То есть будет выполнено
|
|||
|
точно то же самое, как если бы ввести команду `ls` в приглашении командной
|
|||
|
оболочки.
|
|||
|
Если в системе неподдерживается команда `ls`, наберите команду `:!dir`{vim}
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Таким способом можно выполнить любую внешнюю команду,
|
|||
|
в том числе и с указанием необходимых аргументов этой команды.
|
|||
|
|
|||
|
**Важно.**
|
|||
|
После ввода команды, начинающейся с `:`{vim}, должна быть нажата клавиша
|
|||
|
`<ENTER>`{normal}.
|
|||
|
В дальнейшем это может не указываться отдельно, но подразумеваться.
|
|||
|
|
|||
|
|
|||
|
# Урок 1.5.2. КАК ЗАПИСАТЬ ФАЙЛ
|
|||
|
|
|||
|
** Чтобы сохранить файл со всеми изменениями в тексте, наберите `:w`{vim} ФАЙЛ **
|
|||
|
|
|||
|
1. Наберите `:!dir`{vim} или `:!ls`{vim} для получения перечня файлов
|
|||
|
в текущем каталоге.
|
|||
|
Как вы помните, после набора команды нажмите клавишу `<ENTER>`{normal}
|
|||
|
|
|||
|
2. Придумайте название для файла, которое ещё не существует, например, «TEST».
|
|||
|
|
|||
|
3. Теперь наберите
|
|||
|
~~~ cmd
|
|||
|
:w TEST
|
|||
|
~~~
|
|||
|
(здесь TEST - это придуманное вами название файла).
|
|||
|
|
|||
|
4. По этой команде будет полностью сохранён текущий файл («tutor») под новым
|
|||
|
название «TEST». Чтобы проверить это, снова наберите команду `:!dir`{vim}
|
|||
|
или `:!ls`{vim} и просмотрите содержимое каталога.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Если завершить работу редактора Vim и затем запустить его снова с файлом
|
|||
|
TEST (т. е. набрать команду `vim TEST`), этот файл будет точной копией
|
|||
|
учебника в тот момент, когда он был сохранён.
|
|||
|
|
|||
|
5. Теперь удалите этот файл, набрав в редакторе команду
|
|||
|
~~~ cmd
|
|||
|
:!del TEST
|
|||
|
~~~
|
|||
|
(для ОС Windows) или
|
|||
|
~~~ cmd
|
|||
|
:!rm TEST
|
|||
|
~~~
|
|||
|
(для UNIX-подобных ОС)
|
|||
|
|
|||
|
|
|||
|
# Урок 1.5.3. ВЫБОРОЧНАЯ ЗАПИСЬ СТРОК
|
|||
|
|
|||
|
** Чтобы сохранить часть файла, нажмите клавишу `v`{normal}, выделите строки
|
|||
|
и наберите команду `:w ФАЙЛ`{vim} **
|
|||
|
|
|||
|
1. Переместите каретку на эту строку.
|
|||
|
|
|||
|
2. Нажмите клавишу [v](v) и переместите каретку ниже к строке с пятым пунктом.
|
|||
|
Обратите внимание, что текст подсвечен.
|
|||
|
|
|||
|
3. Нажмите клавишу с символом `:`{normal} и внизу экрана появится
|
|||
|
|
|||
|
`:'<,'>`{vim}
|
|||
|
|
|||
|
4. Наберите команду
|
|||
|
|
|||
|
`w TEST`{vim}
|
|||
|
|
|||
|
(здесь TEST - наименование файла, который ещё не существует).
|
|||
|
В командной строке должно быть
|
|||
|
|
|||
|
`:'<,'>w TEST`{vim}
|
|||
|
|
|||
|
и нажмите клавишу <ENTER>
|
|||
|
|
|||
|
5. По этой команде выбранные строки будут записаны в файл «TEST». Убедитесь в
|
|||
|
наличии этого файла, воспользовавшись командой `:!dir`{vim} или `:!ls`{vim}.
|
|||
|
Не удаляйте этот файл, он потребуется на следующем уроке.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
По нажатию клавиши [v](v) выполняется переключение в визуальный режим.
|
|||
|
Чтобы изменить размер выбранной области, нужно переместить каретку.
|
|||
|
К выделенному фрагменту можно применить любой оператор, например, `d`{normal}
|
|||
|
для его удаления.
|
|||
|
|
|||
|
|
|||
|
# Урок 1.5.4. СЧИТЫВАНИЕ И ОБЪЕДИНЕНИЕ ФАЙЛОВ
|
|||
|
|
|||
|
** Чтобы вставить содержащийся в файле текст, наберите `:r ФАЙЛ`{vim} **
|
|||
|
|
|||
|
1. Установите каретку над этой строкой.
|
|||
|
|
|||
|
**Внимание!**
|
|||
|
После выполнения описанного в пункте 2 вы увидите текст из урока 1.5.3.
|
|||
|
Переместите каретку вниз по тексту до текущего урока.
|
|||
|
|
|||
|
2. Теперь считайте содержимое файла TEST, используя команду
|
|||
|
|
|||
|
`:r TEST`{vim}
|
|||
|
|
|||
|
здесь TEST - это наименование файла.
|
|||
|
Файл будет считан, и его содержимое помещено ниже строки с кареткой.
|
|||
|
|
|||
|
3. Для проверки, что содержимое файла было вставлено, переместите каретку
|
|||
|
вверх по тексту и удостоверьтесь, что теперь здесь два урока 1.5.3. -
|
|||
|
исходный и из файла TEST.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Вставить можно и результат внешней команды. Например, по команде
|
|||
|
|
|||
|
`:r !ls`{vim}
|
|||
|
|
|||
|
будет получен вывод команды `ls` и вставлен ниже позиции каретки.
|
|||
|
|
|||
|
|
|||
|
# РЕЗЮМЕ УРОКА 1.5
|
|||
|
|
|||
|
1. По команде [:!command](:!cmd) будет исполнена указанная внешняя команда.
|
|||
|
|
|||
|
Некоторые полезные примеры:
|
|||
|
(Windows) (UNIX)
|
|||
|
`:!dir`{vim} `:!ls`{vim} - вывести перечень файлов в каталоге;
|
|||
|
`:!del ФАЙЛ`{vim} `:!rm ФАЙЛ`{vim} - удалить файл с указанным названием.
|
|||
|
|
|||
|
2. По команде [:w](:w) ФАЙЛ — текущий редактируемый файл будет записан
|
|||
|
с указанным наименованием.
|
|||
|
|
|||
|
3. Используя команды [v](v), перемещение каретки и `:w ФАЙЛ`{vim} — можно
|
|||
|
сохранить визуально выделенные строки в файл с указанным наименованием.
|
|||
|
|
|||
|
4. По команде [:r](:r) ФАЙЛ — будет прочитан файл с указанным наименованием
|
|||
|
и его содержимое помещено ниже позиции каретки.
|
|||
|
|
|||
|
5. По команде [:r !dir](:r!) — будет получен вывод команды `dir` и помещён
|
|||
|
ниже позиции каретки.
|
|||
|
|
|||
|
|
|||
|
# УРОК 1.6.1. КОМАНДЫ ДЛЯ СОЗДАНИЯ СТРОК
|
|||
|
|
|||
|
** Чтобы открыть новую строку с переходом в режим вставки, наберите `o`{normal} **
|
|||
|
|
|||
|
1. Переместите каретку вниз, к первой строке помеченной ✓
|
|||
|
|
|||
|
2. Нажмите клавишу `o`{normal} для того, чтобы создать [пустую строку](o) НИЖЕ
|
|||
|
позиции каретки и переключить редактор в режим вставки.
|
|||
|
|
|||
|
3. Теперь наберите какой-нибудь текст и нажмите клавишу `<ESC>`{normal} для
|
|||
|
выхода из режима вставки.
|
|||
|
|
|||
|
При нажатии `o`{normal}, ниже будет открыта новая пустая строка в режиме вставки.
|
|||
|
|
|||
|
4. Для создания строки ВЫШЕ позиции каретки, наберите прописную букву [O](O),
|
|||
|
вместо строчной буквы `o`{normal}. Попробуйте это сделать для строки ниже.
|
|||
|
|
|||
|
Создайте новую строку над этой, поместив сюда каретку и нажав клавишу `O`{normal}.
|
|||
|
|
|||
|
|
|||
|
# УРОК 1.6.2. КОМАНДА ДЛЯ ДОБАВЛЕНИЯ ТЕКСТА
|
|||
|
|
|||
|
** Чтобы вставить текст после позиции каретки, наберите `a`{normal} **
|
|||
|
|
|||
|
1. Переместите каретку вниз, в начало первой строки помеченной ✗
|
|||
|
|
|||
|
2. Нажмите клавишу `e`{normal}, пока каретка не окажется на последнем символе
|
|||
|
слова «стро».
|
|||
|
|
|||
|
3. Нажмите клавишу `a`{normal} для [добавления](a) текста ПОСЛЕ символа,
|
|||
|
находящегося под кареткой.
|
|||
|
|
|||
|
4. Допишите слово как в строке ниже. Нажмите клавишу `<ESC>`{normal} для выхода
|
|||
|
из режима вставки.
|
|||
|
|
|||
|
5. Используйте клавишу `e`{normal} для перехода к следующему незавершённому
|
|||
|
слову и повторите действия, описанные в пунктах 3 и 4.
|
|||
|
|
|||
|
На этой стро вы можете попрактиков в добавле текста.
|
|||
|
На этой строке вы можете попрактиковаться в добавлении текста.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
По команде [a](a), [i](i) и [A](A) будет выполнено переключение в один
|
|||
|
и тотже режим вставки, различие только в том, где вставляются символы.
|
|||
|
|
|||
|
|
|||
|
# Урок 1.6.3. ЕЩЁ ОДИН СПОСОБ ЗАМЕНЫ
|
|||
|
|
|||
|
** Чтобы заменить несколько символов в строке, наберите `R`{normal} **
|
|||
|
|
|||
|
1. Переместите каретку в начало первого слова «xxx» в строке помеченной ✗
|
|||
|
|
|||
|
2. Теперь нажмите [R](R) и введите число, указанное ниже во второй строке,
|
|||
|
чтобы заменить символы «xxx».
|
|||
|
|
|||
|
3. Нажмите клавишу `<ESC>`{normal} для выхода из режима замены. Заметьте,
|
|||
|
что остаток строки не был изменён.
|
|||
|
|
|||
|
4. Повторите эти шаги для замены оставшихся слов «xxx».
|
|||
|
|
|||
|
При сложении числа 123 с числом xxx сумма будет xxx.
|
|||
|
При сложении числа 123 с числом 456 сумма будет 579.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Режим замены похож на режим вставки, но каждый введённый символ удаляет
|
|||
|
существующий символ в строке.
|
|||
|
|
|||
|
|
|||
|
# Урок 1.6.4. КОПИРОВАНИЕ И ВСТАВКА ТЕКСТА
|
|||
|
|
|||
|
** Чтобы копировать текст, используйте оператор `y`{normal},
|
|||
|
чтобы вставить — команду `p`{normal} **
|
|||
|
|
|||
|
1. Установите каретку после символов «а)» в строке помеченной ✓
|
|||
|
|
|||
|
2. Переключите редактор в визуальный режим командой `v`{normal} и переместите
|
|||
|
каретку вперёд до слова «первый».
|
|||
|
|
|||
|
3. Нажмите клавишу `y`{normal} для [копирования](yank) подсвеченного текста.
|
|||
|
|
|||
|
4. Переместите каретку в конец следующей строки, набрав команду `j$`{normal}.
|
|||
|
|
|||
|
5. Нажмите клавишу `p`{normal} для [вставки](put) текста.
|
|||
|
|
|||
|
6. Затем наберите команду `a`{normal}, напечатайте слово "второй"
|
|||
|
и нажмите клавишу `<ESC>`{normal}.
|
|||
|
|
|||
|
7. Повторите шаги с 1 по 4, только установите каретку после слова «первый»,
|
|||
|
выделите, скопируйте и вставьте слово « пункт.»
|
|||
|
|
|||
|
а) Это первый пункт.
|
|||
|
б)
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Для копирования одного слова можно использовать команду `yw`{normal}
|
|||
|
(оператор `y`{normal} и объект `w`{normal}).
|
|||
|
По команде `yy`{normal} будет скопирована целая строка, а по команде
|
|||
|
`p`{normal} вставлена.
|
|||
|
|
|||
|
|
|||
|
# Урок 1.6.5. УСТАНОВКА ПАРАМЕТРОВ
|
|||
|
|
|||
|
** Чтобы при поиске или замене не учитывался регистр символов,
|
|||
|
задайте соответствующие настройки **
|
|||
|
|
|||
|
1. Найдите слово «игнорировать», набрав команду `/игнорировать`{normal}.
|
|||
|
Повторите поиск несколько раз, нажимая клавишу `n`{normal} .
|
|||
|
|
|||
|
2. Установите параметр 'ic' (игнорировать регистр), набрав команду
|
|||
|
~~~ cmd
|
|||
|
:set ic
|
|||
|
~~~
|
|||
|
3. Ещё раз повторите поиск слова «игнорировать», нажимая клавишу `n`{normal}
|
|||
|
Заметьте, что теперь будут найдены слова «Игнорировать» и «ИГНОРИРОВАТЬ».
|
|||
|
|
|||
|
4. Установите параметры 'hlsearch' и 'incsearch' командой
|
|||
|
~~~ cmd
|
|||
|
:set hls is
|
|||
|
~~~
|
|||
|
5. Повторно введите команду поиска `/игнорировать` и посмотрите, что получится
|
|||
|
|
|||
|
6. Для возврата учёта регистра символов при поиске, введите команду
|
|||
|
~~~ cmd
|
|||
|
:set noic
|
|||
|
~~~
|
|||
|
**Примечание.**
|
|||
|
Для отключения подсветки совпадений, наберите команду
|
|||
|
~~~ cmd
|
|||
|
:nohlsearch
|
|||
|
~~~
|
|||
|
**Примечание.**
|
|||
|
Если требуется не учитывать регистр символов только единоразово, используйте
|
|||
|
ключ [\c](/\c) в команде поиска, например, `/игнорировать\c``<ENTER>`{normal}
|
|||
|
|
|||
|
|
|||
|
# РЕЗЮМЕ УРОКА 1.6
|
|||
|
|
|||
|
1. По команде `o`{normal} будет создана пустая строка ниже строки с кареткой
|
|||
|
и редактор будет переключен в режим вставки
|
|||
|
По команде `O`{normal} будет создана пустая строка выше строки с кареткой
|
|||
|
и редактор будет переключен в режим вставки
|
|||
|
|
|||
|
2. По команде `a`{normal} выполняется вставки текста ПОСЛЕ позиции каретки.
|
|||
|
По команде `A`{normal} выполняется вставки текста в конце строки.
|
|||
|
|
|||
|
3. По команде `e`{normal} выполняется установка каретки в конце слова.
|
|||
|
|
|||
|
4. Оператор `y`{normal} используется для копирования текста,
|
|||
|
а по команде `p`{normal} происходит вставка скопированного текста.
|
|||
|
|
|||
|
5. При нажатии клавиш `R`{normal} выполняется переключение в режим замены,
|
|||
|
а отключение - нажатием клавиши `<ESC>`{normal}.
|
|||
|
|
|||
|
6. Наберите [:set](:set) xxx для установки параметра 'xxx'.
|
|||
|
|
|||
|
Вот некоторые параметры (можно указывать полные или сокращённые наименования):
|
|||
|
'ic' 'ignorecase' игнорирование регистра символов при поиске
|
|||
|
'is' 'incsearch' отображение частичных совпадений при поиске
|
|||
|
'hls' 'hlsearch' подсветка всех совпадений при поиске
|
|||
|
|
|||
|
7. Для сброса параметра, добавьте приставку "no" к его названию
|
|||
|
~~~ cmd
|
|||
|
:set noic
|
|||
|
~~~
|
|||
|
8. Для переключения состояния параметра, добавьте приставку "inv" к названию
|
|||
|
~~~ cmd
|
|||
|
:set invic
|
|||
|
~~~
|
|||
|
|
|||
|
# УРОК 1.7.1. ВСТРОЕННАЯ СПРАВОЧНАЯ СИСТЕМА
|
|||
|
|
|||
|
** Используйте встроенную справочную систему **
|
|||
|
|
|||
|
В редакторе Vim имеется мощная встроенная справочная система, и чтобы начать
|
|||
|
ей пользоваться, попробуйте один из трёх вариантов:
|
|||
|
- нажмите клавишу `<HELP>`{normal} (если она есть на клавиатуре)
|
|||
|
- нажмите клавишу `<F1>`{normal} (если она есть на клавиатуре)
|
|||
|
- наберите
|
|||
|
`:help`{vim}
|
|||
|
|
|||
|
Ознакомьтесь с информацией в окне справочной системы, чтобы получить
|
|||
|
представление о том как работать с документацией.
|
|||
|
|
|||
|
Нажмите `<CTRL-w><CTRL-w>`{normal} для перемещения каретки из одного окна
|
|||
|
в другое окно.
|
|||
|
Наберите `:q`{normal}, чтобы закрыть окно справочной системы (когда каретка
|
|||
|
находится в этом окне).
|
|||
|
|
|||
|
Можно найти описание для любого понятия или команды, задав соответствующий
|
|||
|
аргумент команде `:help`{vim}.
|
|||
|
Попробуйте следующее (не забудьте нажать `<ENTER>`{normal}):
|
|||
|
~~~ cmd
|
|||
|
:help w
|
|||
|
:help c_CTRL-D
|
|||
|
:help insert-index
|
|||
|
:help user-manual
|
|||
|
~~~
|
|||
|
|
|||
|
# Урок 1.7.2. СОЗДАНИЕ СТАРТОВОГО КОМАНДНОГО ФАЙЛА
|
|||
|
|
|||
|
** Включим все возможности редактора Vim **
|
|||
|
|
|||
|
Редактор Vim более функционален по сравнению с редактором Vi, но большинство
|
|||
|
из этих возможностей отключены при запуске программы. Чтобы активировать
|
|||
|
весь потенциала редактора, необходимо создать файл «vimrc».
|
|||
|
|
|||
|
1. Создайте новый файл "vimrc". Его местонахождение зависит от используемой
|
|||
|
системы:
|
|||
|
~~~ cmd
|
|||
|
:e ~/.vimrc
|
|||
|
~~~
|
|||
|
для UNIX-подобных систем
|
|||
|
~~~ cmd
|
|||
|
:e $VIM\_vimrc
|
|||
|
~~~
|
|||
|
для MS Windows
|
|||
|
|
|||
|
2. Теперь добавьте в этот файл содержимое шаблонного файла «vimrc»
|
|||
|
~~~ cmd
|
|||
|
:r $VIMRUNTIME/vimrc_example.vim
|
|||
|
~~~
|
|||
|
3. Запишите созданный вами файл «vimrc»
|
|||
|
`:w`{vim}
|
|||
|
|
|||
|
Теперь при следующем запуске редактора Vim будет включена подсветка синтаксиса.
|
|||
|
|
|||
|
Все необходимые вам настройки могут быть добавлены в файл «vimrc».
|
|||
|
Чтобы получить подробную информацию, наберите `:help vimrc-intro`{vim}
|
|||
|
|
|||
|
|
|||
|
# Урок 1.7.3. ПОДСТАНОВКА КОМАНД
|
|||
|
|
|||
|
** Подстановка в командной строке выполняется при помощи следующих клавиш
|
|||
|
`<CTRL-D>`{normal} и `<TAB>`{normal}**
|
|||
|
|
|||
|
1. Отключите совместимость с редактором Vi
|
|||
|
~~~ cmd
|
|||
|
:set nocp
|
|||
|
~~~
|
|||
|
2. Посмотрите, какие файлы есть в каталоге, набрав команду
|
|||
|
`:!ls`{vim} или `:!dir`{vim}
|
|||
|
|
|||
|
3. Наберите начало команды для открытия файла на редактирование `:e`{vim}
|
|||
|
|
|||
|
4. Нажмите клавиши `<CTRL-D>`{normal}, и будет показан перечень команд
|
|||
|
редактора Vim начинающихся с буквы «e».
|
|||
|
|
|||
|
5. Нажмите клавиши `d<TAB>`{normal}, и будет подставлено полное название
|
|||
|
команды `:edit`{vim}.
|
|||
|
|
|||
|
6. Теперь напечатайте пробел и начало наименования существующего файла
|
|||
|
`:edit TE`{vim}
|
|||
|
|
|||
|
7. Нажмите клавишу `<TAB>`{normal} и будет подставлено наименование файла,
|
|||
|
если оно уникальное.
|
|||
|
|
|||
|
**Примечание.**
|
|||
|
Подстановка работает для множества команд. Просто попробуйте нажать клавиши
|
|||
|
`<CTRL-D>`{normal} и `<TAB>`{normal} для любой из команд редактора.
|
|||
|
Это особенно полезно для команды `:help`{vim}.
|
|||
|
|
|||
|
|
|||
|
# РЕЗЮМЕ УРОКА 1.7
|
|||
|
|
|||
|
1. Чтобы открыть встроенную справочную систему редактора, наберите команду
|
|||
|
`:help`{vim} или нажмите клавишу `<F1>`{normal}, или `<HELP>`{normal}.
|
|||
|
|
|||
|
2. Чтобы найти справочную информацию о какой-либо команде,
|
|||
|
наберите `:help cmd`{vim} (вместо «cmd» укажите наименование команды).
|
|||
|
|
|||
|
3. Чтобы переместить каретку в другое окно, нажмите клавиши
|
|||
|
`<CTRL-w><CTRL-w>`{normal}.
|
|||
|
|
|||
|
4. Чтобы закрыть окна справочной системы (если оно активно), наберите `:q`{vim}.
|
|||
|
|
|||
|
5. Чтобы при запуске всегда применялись необходимые вам настройки, создайте
|
|||
|
стартовый командный файл vimrc.
|
|||
|
|
|||
|
6. При наборе команды, начинающейся с символа `:`{normal}, нажмите клавиши
|
|||
|
`<CTRL-D>`{normal}, чтобы просмотреть возможные варианты подстановки.
|
|||
|
Нажмите клавишу `<TAB>`{normal} для подстановки необходимого варианта.
|
|||
|
|
|||
|
|
|||
|
# ЗАКЛЮЧЕНИЕ
|
|||
|
|
|||
|
На этом можно завершить первую часть занятий, посвящённые редактору Vim.
|
|||
|
Далее вы можете пройти [вторую часть](@tutor:vim-02-beginner) занятий.
|
|||
|
|
|||
|
Целью данного курса было дать краткий обзор редактора Vim, достаточный для
|
|||
|
того, чтобы не возникало сложностей при его использовании. Это далеко не
|
|||
|
полный обзор, поскольку в редакторе Vim есть ещё много-много команд.
|
|||
|
|
|||
|
Чтобы расширить свои познания, ознакомьтесь с руководством пользователя,
|
|||
|
набрав команду `:help user-manual`{vim}.
|
|||
|
|
|||
|
Для дальнейшего чтения рекомендуется книга
|
|||
|
«*Vim - Vi Improved*», автор Steve Oualline, издательство New Riders.
|
|||
|
Она полностью посвящена редактору Vim и будет особенно полезна новичкам.
|
|||
|
В книге имеется множество примеров и иллюстраций.
|
|||
|
См. https://iccf-holland.org/click5.html
|
|||
|
|
|||
|
Также рекомендуется книга «*Practical Vim*», автор Drew Neil,
|
|||
|
издательство Pragmatic Bookshelf.
|
|||
|
См. https://pragprog.com/titles/dnvim2/practical-vim-second-edition/
|
|||
|
|
|||
|
Ещё одна книга более почтенного возраста и посвящена больше редактору Vi,
|
|||
|
чем редактору Vim, однако также рекомендуется к прочтению
|
|||
|
«*Learning the Vi Editor*», автор Linda Lamb,
|
|||
|
издательство O'Reilly & Associates Inc.
|
|||
|
Это хорошая книга, чтобы узнать всё, что только можно сделать в редакторе Vi.
|
|||
|
Шестое издание этой книги включает информацию о редакторе Vim.
|
|||
|
|
|||
|
К томуже в Интернет есть множество ресурсов, где можно узнать многое
|
|||
|
о редакторе Vim. Вот некоторые из них:
|
|||
|
|
|||
|
- *Learn Vim Progressively*:
|
|||
|
http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/
|
|||
|
- *Learning Vim in 2014*:
|
|||
|
http://benmccormick.org/learning-vim-in-2014/
|
|||
|
- *Vimcasts*:
|
|||
|
http://vimcasts.org/
|
|||
|
- *Vim Video-Tutorials by Derek Wyatt*:
|
|||
|
http://derekwyatt.org/vim/tutorials/
|
|||
|
- *Learn Vimscript the Hard Way*:
|
|||
|
http://learnvimscriptthehardway.stevelosh.com/
|
|||
|
- *7 Habits of Effective Text Editing*:
|
|||
|
http://www.moolenaar.net/habits.html
|
|||
|
- *vim-galore*:
|
|||
|
https://github.com/mhinz/vim-galore
|
|||
|
|
|||
|
Эти уроки были составлены Michael C. Pierce и Robert K. Ware из Colorado
|
|||
|
School of Mines с учётом идей, предложенных Charles Smith из Colorado State
|
|||
|
University. E-mail: bware@mines.colorado.edu (теперь недоступен).
|
|||
|
|
|||
|
Уроки доработаны Bram Moolenaar для использования в редакторе Vim.
|
|||
|
Уроки доработаны Felipe Morales для обучающего режима редактора Vim.
|
|||
|
|
|||
|
Андрей Киселёв, перевод на русский язык, 2002, a_kissel@eudoramail.com
|
|||
|
Сергей Алёшин, перевод на русский язык, 2014, alyoshin.s@gmail.com
|
|||
|
Restorer, редактура, 2022, restorer@mail2k.ru
|