From: RestorerZ Date: Sun, 16 Mar 2025 18:49:41 +0000 (+0100) Subject: patch 9.1.1210: translation(ru): missing Russian translation for the new tutor X-Git-Tag: v9.1.1210^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=21ac3a49b52330bbac5815971a15b51bda405f96;p=thirdparty%2Fvim.git patch 9.1.1210: translation(ru): missing Russian translation for the new tutor Problem: translation(ru): missing Russian translation for the new tutor Solution: include new Russian translation, update the Makefile for installing the new translations (RestorerZ) closes: #16901 Signed-off-by: RestorerZ Signed-off-by: Christian Brabandt --- diff --git a/Filelist b/Filelist index 7d18e9463f..8333614b2d 100644 --- a/Filelist +++ b/Filelist @@ -1080,6 +1080,10 @@ LANG_GEN = \ runtime/tutor/Make_all.mak \ runtime/tutor/it/vim-01-beginner.tutor \ runtime/tutor/it/vim-01-beginner.tutor.json \ + runtime/tutor/ru/vim-01-beginner.tutor \ + runtime/tutor/ru/vim-01-beginner.tutor.json \ + runtime/tutor/ru/vim-02-beginner.tutor \ + runtime/tutor/ru/vim-02-beginner.tutor.json \ runtime/tutor/sr/vim-01-beginner.tutor \ runtime/tutor/sr/vim-01-beginner.tutor.json \ runtime/tutor/sr/vim-02-beginner.tutor \ diff --git a/runtime/tutor/ru/vim-01-beginner.tutor b/runtime/tutor/ru/vim-01-beginner.tutor new file mode 100644 index 0000000000..e4c327c68f --- /dev/null +++ b/runtime/tutor/ru/vim-01-beginner.tutor @@ -0,0 +1,1194 @@ +# ДОБРО ПОЖАЛОВАТЬ НА ЗАНЯТИЯ ПО РЕДАКТОРУ Vim + +## ГЛАВА ПЕРВАЯ + + Программа Vim — это очень мощный текстовый редактор, имеющий множество + команд, и все их просто невозможно описать в рамках этого учебника. + Данный же учебник призван объяснить те команды, которые позволят вам с + лёгкостью использовать программу Vim в качестве редактора общего назначения. + + Важно помнить, что этот учебник предназначен для практического обучения. + Это означает, что вы должны применять команды для того, чтобы как следует + их изучить. Если вы просто прочитаете этот текст, то не запомните команды! + + Теперь, убедившись, что не включена клавиша ``{normal}, + нажмите клавишу `j`{normal} несколько раз, так, чтобы урок 0 полностью + поместился на экране. + +# ВВОДНАЯ ЧАСТЬ + +**Важно!** + Выполняя задания уроков, вы будете изменять некоторый текст этих заданий, + но эти изменения не будут сохранятся в файле. Так что не бойтесь что что‐то + испортится; просто помните, что нажав клавишу []() и затем клавишу + [u](u) можно отменить последние сделанные изменения. + +Это интерактивный учебник, и есть несколько важных моментов, о которых надо знать. +‑ Если нажать клавишу []() когда каретка находится + на [такой ссылке](holy-grail), то будет открыт связанный с ней раздел + документации. +‑ К тому же, если нажать клавишу [K](K) на любом слове, то будет выполнен поиск + этого слова в документации. +- Также в ходе урока вам потребуется изменять текст, например, +как этот + Если задание будет выполнено правильно, то значок ✗ справа изменится на ✓. + Надеюсь, вы уже начинаете понимать насколько удобным может быть редактора Vim. +- Либо может быть предложено набрать команду, похожую на эту (объяснение далее): +~~~ cmd + :help +~~~ +или нажать последовательность клавиш +~~~ normal + 0fd3wP$P +~~~ +Текст, заключённый в угловые скобки (вроде ``{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 + +**Совет.** + Если вы не уверены в правильности набранного текста, нажмите клавишу + ``{normal}, чтобы переключить редактор в режим команд. + После этого повторите набор. + +**Примечание.** + Клавиши управления курсором (стрелки) также должны работать. + Но учтите, что немного потренировавшись вы поймёте, что намного быстрее + перемещать каретку клавишами `h`{normal} `j`{normal} `k`{normal} `l`{normal} + + +# Урок 1.1.2. ЗАВЕРШЕНИЕ РАБОТЫ ПРОГРАММЫ *1-1-2* + +**ВНИМАНИЕ!** Перед выполнением описанных ниже действий, прочтите урок полностью! + + 1. Нажмите клавишу ``{normal} (чтобы убедиться, что включен режим команд). + + 2. Наберите + + `:q!`{vim} ``{normal} + + Это означает, что надо набрать три символа : q ! и нажать клавишу <ВВОД> + Исполнение этой команды вызовет завершение работы редактора БЕЗ СОХРАНЕНИЯ + любых сделанных изменений. + + 3. Снова запустите редактор Vim и повторно наберите команду, через которую вы + открыли этот учебник. Это может быть + + `:Tutor`{vim} ``{normal} + + 4. Если уверены в том, что поняли смысл вышесказанного, выполните шаги + с 1 до 3, чтобы завершить работу и снова запустить редактор. + +**Примечание.** + По команде [:q!](:q) ``{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. После исправления каждого ошибочного слова, нажмите клавишу ``{normal} + для переключения в режим команд. + + Повторите шаги со 2 по 4, пока предложение не будет исправлено полностью. + +Часть текта в строке бесследно . +Часть текста в этой строке бесследно пропало. + + 5. Когда освоите вставку текста, переходите к уроку [1.1.5](*1-1-5*). + + +# Урок 1.1.5. РЕДАКТИРОВАНИЕ — ДОБАВЛЕНИЕ ТЕКСТА *1-1-5* + +** Чтобы добавить текст, нажмите клавишу `A`{normal} ** + + 1. Переместите каретку к первой строке помеченной ✗. + Сейчас неважно, на каком символе расположена каретка в этой строке. + + 2. Нажмите клавишу [A](A) и наберите текст, который требуется добавить. + + 3. После добавления текста нажмите клавишу ``{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, выполните одно из следующих: + ``{normal} `:q!`{vim} ``{normal} + по этой команде не будут сохранены изменения; + или + ``{normal} `:wq`{vim} ``{normal} + по этой команде будут сохранены изменения. + + 4. Чтобы удалить символ под кареткой, нажмите клавишу `x`{normal}. + + 5. Чтобы вставить текст перед кареткой: + `i`{normal} вставляемый текст ``{normal} + Чтобы добавить текст в конце строки: + `A`{normal} добавляемый текст ``{normal} + +**Примечание.** + По нажатию клавиши ``{normal} будет выполнено переключение редактора + в режим команд с прерыванием обработки любой ранее набранной команды. + +Теперь переходите к уроку [1.2](*1-2-1*). + + +# Урок 1.2.1. КОМАНДЫ УДАЛЕНИЯ *1-2-1* + + ** Чтобы удалить слово под кареткой, используйте команду `dw`{vim} ** + + 1. Переключите редактор в режим команд, нажав клавишу ``{normal}. + + 2. Переместите каретку к строке помеченной ✗ + + 3. Установите каретку на начало слова, которое следует удалить. + + 4. Наберите [dw](dw) для удаления этого слова. + +**Примечание.** + При наборе оператора `d`{normal} он отобразится в самой нижней строке справа, + и программа будет ожидать ввода следующей команды, + в данном случае - `w`{normal} (объект слово). + Если что-то не получается, нажмите клавишу ``{normal} и начните сначала. + +Несколько слов рафинад в этом предложении автокран излишни. + + 5. Повторите шаги 3 и 4, пока не исправите все ошибки, и переходите + к уроку [1.2.2](*1-2-2*). + + +# Урок 1.2.2. ЕЩЁ ОДНА КОМАНДА УДАЛЕНИЯ *1-2-2* + +** Чтобы удалить текст до конца строки, используйте команду `d$`{vim} ** + + 1. Переключите редактор в режим команд, нажав клавишу ``{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. Теперь нажмите клавиши ``{normal} (т. е. удерживая клавишу ``, + нажмите клавишу `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) + Чтобы вернуть отменённые изменения, нажмите ``{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. Нажмите клавишу ``{normal} и переместите каретку к следующей ошибке + (к первому символу, начиная с которого надо изменить окончание слова). + + 5. Повторите шаги 3 и 4 пока первая строка не будет соответствовать второй. + +Несколько сола в эьгц строке тпгшцбь истравыиться. +Несколько слов в этой строке требуется исправить. + +**Примечание.** + Обратите внимание, что по команде `ce`{normal} не только удаляется часть + слова, но и происходит переключение редактора в режим вставки. + По команде `cc`{normal} будет выполнятся то же самое, но для целой строки. + + +# УРОК 1.3.4. ЕЩЁ НЕСКОЛЬКО СПОСОБОВ РАБОТЫ С ОПЕРАТОРОМ ИЗМЕНЕНИЯ `c`{normal} + +** К оператору изменения применимы те же объекты, что и к оператору удаления ** + + 1. Оператор изменения работает аналогично оператору удаления. Формат команды: + + c [число] объект + + 2. Объекты - это то же самое, что и ранее: `w`{normal} (слово), + `$`{normal} (конец строки) и т. п. + + 3. Переместите каретку к первой строке помеченной ✗ + + 4. Установите каретку на первой ошибке. + + 5. Наберите `c$`{normal} и отредактируйте первую строку так, чтобы она + совпадала со второй, после чего нажмите клавишу ``{normal}. + +Окончание этой строки нужно сделать похожим как во второй строке. +Окончание этой строки нужно исправить через команду c$. + +**Примечание.** + Клавиша ``{normal} используется для исправления при наборе текста. + + +# РЕЗЮМЕ УРОКА 1.3 + + 1. Чтобы вставить текст, который был только что удалён, наберите команду [p](p). + Текст будет вставлен ПОСЛЕ позиции каретки (если была удалена строка, + то она будет помещена в строке ниже строки с кареткой). + + 2. Чтобы заменить символ под кареткой, наберите команду [r](r) и затем + заменяющий символ. + + 3. [Операторы изменения](c) изменяют указанный объект текста от позиции каретки + до конечной точки перемещения. + Например, по команде `ce`{normal} можно изменить текст от позиции каретки + до конца слова, а по команде `c$`{normal} - до конца строки. + + 4. Формат команд изменения: + + c [число] объект + + где c - оператор изменения; + [число] - количество изменяемых объектов (необязательная часть); + объект - объект текста, который будет изменён. + +Теперь переходите к следующему уроку. + + +# УРОК 1.4.1. ИНФОРМАЦИЯ О ФАЙЛЕ И ПОЗИЦИЯ КАРЕТКИ + +** Чтобы получить информацию о файле и позиции каретки, нажмите ``{normal} + Чтобы переместить каретку к заданной строке в файле, нажмите `G`{normal} ** + + **ВНИМАНИЕ!** Прочитайте весь урок, прежде чем выполнять любые действия! + + 1. Удерживая клавишу ``{normal}, нажмите клавишу `g`{normal}. + Внизу экрана появится сообщение с наименованием файла и номером строки, + в которой находится каретка. Запомните этот номер строки, + он потребуется на шаге 3. + + **Примечание.** + Позиция каретки может отображаться в правом нижнем углу окна программы, + если установлен параметр ['ruler']('ruler'). + + 2. Нажмите клавишу [G](G) для перемещения каретки на последнюю строку файла. + Теперь наберите [gg](gg) для перемещения каретки на первую строку файла. + + 3. Наберите номер строки, которой был получен на шаге 1, и нажмите клавишу + `G`{normal}. Каретка будет перемещена в ту строку, где она находилась, + когда в первый раз были нажаты клавиши ``{normal}. + + 4. Если вы запомнили всё вышесказанное, выполните шаги с 1 по 3. + + +# Урок 1.4.2. КОМАНДЫ ПОИСКА + +** Чтобы что-то найти, наберите команду `/`{normal} и введите искомую фразу ** + + 1. В режиме команд наберите символ `/`{normal}. + Обратите внимание, что этот символ будет отображаться внизу экрана. Так же, + как и при наборе команды `:`{normal} + + 2. Теперь наберите ошшшибка ``{normal}. + Это то слово, которое требуется найти. + + 3. Чтобы повторить поиск искомого слова, просто нажмите клавишу [n](n). + Чтобы искать это слово в обратном направлении, нажмите клавиши [N](N). + + 4. Если требуется сразу выполнить поиск в обратном направлении, используйте + команду [?](?) вместо команды `/`{normal}. + + 5. Чтобы вернуться туда, откуда был начат поиск, нажмите несколько раз + клавиши ``{normal}. + Для перехода вперёд, используйте команду ``{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. По приведённым ниже командам будет выполнено: + ``{normal} - вывод информации о файле и текущей позиции каретки + в этом файле + `G`{normal} - переход на последнюю строку файла + номер и `G`{normal} - переход на строку с указанным номером + `gg`{normal} - переход на первую строку файла + + 2. При вводе символа `/`{normal} с последующим набором слова, будет выполнен + поиск этого слова ВПЕРЁД по тексту. + При вводе символа `?`{normal} с последующим набором слова, будет выполнен + поиск этого слова НАЗАД по тексту. + После показа первого совпадения, нажмите `n`{normal} для перехода + к следующему слову в том же направлении поиска или `N`{normal} для поиска + в противоположном направлении. + При нажатии клавиш ``{normal} будет возврат к предыдущему слову, + а при нажатии клавиш ``{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" сразу после "!" и нажмите ``{normal}. + Будет выведен перечень файлов в текущем каталоге. То есть будет выполнено + точно то же самое, как если бы ввести команду `ls` в приглашении командной + оболочки. + Если в системе неподдерживается команда `ls`, наберите команду `:!dir`{vim} + +**Примечание.** + Таким способом можно выполнить любую внешнюю команду, + в том числе и с указанием необходимых аргументов этой команды. + +**Важно.** + После ввода команды, начинающейся с `:`{vim}, должна быть нажата клавиша + ``{normal}. + В дальнейшем это может не указываться отдельно, но подразумеваться. + + +# Урок 1.5.2. КАК ЗАПИСАТЬ ФАЙЛ + +** Чтобы сохранить файл со всеми изменениями в тексте, наберите `:w`{vim} ФАЙЛ ** + + 1. Наберите `:!dir`{vim} или `:!ls`{vim} для получения перечня файлов + в текущем каталоге. + Как вы помните, после набора команды нажмите клавишу ``{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} + + и нажмите клавишу + + 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. Теперь наберите какой-нибудь текст и нажмите клавишу ``{normal} для + выхода из режима вставки. + +При нажатии `o`{normal}, ниже будет открыта новая пустая строка в режиме вставки. + + 4. Для создания строки ВЫШЕ позиции каретки, наберите прописную букву [O](O), + вместо строчной буквы `o`{normal}. Попробуйте это сделать для строки ниже. + +Создайте новую строку над этой, поместив сюда каретку и нажав клавишу `O`{normal}. + + +# УРОК 1.6.2. КОМАНДА ДЛЯ ДОБАВЛЕНИЯ ТЕКСТА + +** Чтобы вставить текст после позиции каретки, наберите `a`{normal} ** + + 1. Переместите каретку вниз, в начало первой строки помеченной ✗ + + 2. Нажмите клавишу `e`{normal}, пока каретка не окажется на последнем символе + слова «стро». + + 3. Нажмите клавишу `a`{normal} для [добавления](a) текста ПОСЛЕ символа, + находящегося под кареткой. + + 4. Допишите слово как в строке ниже. Нажмите клавишу ``{normal} для выхода + из режима вставки. + + 5. Используйте клавишу `e`{normal} для перехода к следующему незавершённому + слову и повторите действия, описанные в пунктах 3 и 4. + +На этой стро вы можете попрактиков в добавле текста. +На этой строке вы можете попрактиковаться в добавлении текста. + +**Примечание.** + По команде [a](a), [i](i) и [A](A) будет выполнено переключение в один + и тотже режим вставки, различие только в том, где вставляются символы. + + +# Урок 1.6.3. ЕЩЁ ОДИН СПОСОБ ЗАМЕНЫ + +** Чтобы заменить несколько символов в строке, наберите `R`{normal} ** + + 1. Переместите каретку в начало первого слова «xxx» в строке помеченной ✗ + + 2. Теперь нажмите [R](R) и введите число, указанное ниже во второй строке, + чтобы заменить символы «xxx». + + 3. Нажмите клавишу ``{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}, напечатайте слово "второй" + и нажмите клавишу ``{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```{normal} + + +# РЕЗЮМЕ УРОКА 1.6 + + 1. По команде `o`{normal} будет создана пустая строка ниже строки с кареткой + и редактор будет переключен в режим вставки + По команде `O`{normal} будет создана пустая строка выше строки с кареткой + и редактор будет переключен в режим вставки + + 2. По команде `a`{normal} выполняется вставки текста ПОСЛЕ позиции каретки. + По команде `A`{normal} выполняется вставки текста в конце строки. + + 3. По команде `e`{normal} выполняется установка каретки в конце слова. + + 4. Оператор `y`{normal} используется для копирования текста, + а по команде `p`{normal} происходит вставка скопированного текста. + + 5. При нажатии клавиш `R`{normal} выполняется переключение в режим замены, + а отключение - нажатием клавиши ``{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 имеется мощная встроенная справочная система, и чтобы начать + ей пользоваться, попробуйте один из трёх вариантов: + - нажмите клавишу ``{normal} (если она есть на клавиатуре) + - нажмите клавишу ``{normal} (если она есть на клавиатуре) + - наберите + `:help`{vim} + + Ознакомьтесь с информацией в окне справочной системы, чтобы получить + представление о том как работать с документацией. + + Нажмите ``{normal} для перемещения каретки из одного окна + в другое окно. + Наберите `:q`{normal}, чтобы закрыть окно справочной системы (когда каретка + находится в этом окне). + + Можно найти описание для любого понятия или команды, задав соответствующий + аргумент команде `:help`{vim}. + Попробуйте следующее (не забудьте нажать ``{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. ПОДСТАНОВКА КОМАНД + +** Подстановка в командной строке выполняется при помощи следующих клавиш + ``{normal} и ``{normal}** + + 1. Отключите совместимость с редактором Vi +~~~ cmd + :set nocp +~~~ + 2. Посмотрите, какие файлы есть в каталоге, набрав команду + `:!ls`{vim} или `:!dir`{vim} + + 3. Наберите начало команды для открытия файла на редактирование `:e`{vim} + + 4. Нажмите клавиши ``{normal}, и будет показан перечень команд + редактора Vim начинающихся с буквы «e». + + 5. Нажмите клавиши `d`{normal}, и будет подставлено полное название + команды `:edit`{vim}. + + 6. Теперь напечатайте пробел и начало наименования существующего файла + `:edit TE`{vim} + + 7. Нажмите клавишу ``{normal} и будет подставлено наименование файла, + если оно уникальное. + +**Примечание.** + Подстановка работает для множества команд. Просто попробуйте нажать клавиши + ``{normal} и ``{normal} для любой из команд редактора. + Это особенно полезно для команды `:help`{vim}. + + +# РЕЗЮМЕ УРОКА 1.7 + + 1. Чтобы открыть встроенную справочную систему редактора, наберите команду + `:help`{vim} или нажмите клавишу ``{normal}, или ``{normal}. + + 2. Чтобы найти справочную информацию о какой-либо команде, + наберите `:help cmd`{vim} (вместо «cmd» укажите наименование команды). + + 3. Чтобы переместить каретку в другое окно, нажмите клавиши + ``{normal}. + + 4. Чтобы закрыть окна справочной системы (если оно активно), наберите `:q`{vim}. + + 5. Чтобы при запуске всегда применялись необходимые вам настройки, создайте + стартовый командный файл vimrc. + + 6. При наборе команды, начинающейся с символа `:`{normal}, нажмите клавиши + ``{normal}, чтобы просмотреть возможные варианты подстановки. + Нажмите клавишу ``{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 diff --git a/runtime/tutor/ru/vim-01-beginner.tutor.json b/runtime/tutor/ru/vim-01-beginner.tutor.json new file mode 100644 index 0000000000..50d32b23e3 --- /dev/null +++ b/runtime/tutor/ru/vim-01-beginner.tutor.json @@ -0,0 +1,45 @@ +{ + "expect": { + "33": -1, + "121": "От топота копыт пыль по полю летит.", + "146": "Часть текста в этой строке бесследно пропало.", + "147": "Часть текста в этой строке бесследно пропало.", + "167": "Часть текста в этой строке бесследно пропало.", + "168": "Часть текста в этой строке бесследно пропало.", + "169": "Здесь также недостаёт части текста.", + "170": "Здесь также недостаёт части текста.", + "253": "Несколько слов в этом предложении излишни.", + "271": "Кто-то набрал окончание этой строки дважды.", + "318": -1, + "340": "Эта строка очищена от лишних слов.", + "356": -1, + "357": -1, + "358": -1, + "359": -1, + "360": -1, + "361": -1, + "362": -1, + "392": "Исправьте ошибки в этой строке и верните их с помощью команды «отмена».", + "445": -1, + "446": -1, + "447": -1, + "448": -1, + "463": "В момент набора этой строки кое-кто с трудом попадал по клавишам!", + "464": "В момент набора этой строки кое-кто с трудом попадал по клавишам!", + "488": "Несколько слов в этой строке требуется исправить.", + "489": "Несколько слов в этой строке требуется исправить.", + "515": "Окончание этой строки нужно исправить через команду c$.", + "516": "Окончание этой строки нужно исправить через команду c$.", + "594": -1, + "613": -1, + "639": "Я увожу к отверженным селеньям, я увожу сквозь вековечный стон, я увожу к забытым поколеньям.", + "867": -1, + "872": -1, + "893": "На этой строке вы можете попрактиковаться в добавлении текста.", + "894": "На этой строке вы можете попрактиковаться в добавлении текста.", + "915": "При сложении числа 123 с числом 456 сумма будет 579.", + "916": "При сложении числа 123 с числом 456 сумма будет 579.", + "945": "а) Это первый пункт.", + "946": "б) Это второй пункт." + } +} diff --git a/runtime/tutor/ru/vim-02-beginner.tutor b/runtime/tutor/ru/vim-02-beginner.tutor new file mode 100644 index 0000000000..d2b69181af --- /dev/null +++ b/runtime/tutor/ru/vim-02-beginner.tutor @@ -0,0 +1,231 @@ +# ДОБРО ПОЖАЛОВАТЬ НА ЗАНЯТИЯ ПО РЕДАКТОРУ Vim + +## ГЛАВА ВТОРАЯ + + Что‐то неожиданное и непонятное? + Если это ваше первое знакомство с редактором Vim и вы планировали начать + с вводной главы учебника, не расстраивайтесь и сделайте вот что. + Наберите в командной строке редкатора Vim следующую команду +~~~ cmd + :Tutor vim-01-beginner +~~~ + Или просто откройте по ссылке [первую главу](@tutor:vim-01-beginner) учебника. + + Приблизительное время, необходимое для изучения второй главы учебника + составляет около 8–10 минут, и зависит от того, сколько времени вы посвятите + выполнению заданий. + + +# Урок 2.1.1. ИМЕНОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim + +** Копирование с сохранением двух разных слов и последующая их вставка в текст ** + + 1. Переместите каретку к строке помеченной ✓ + + 2. Установите каретку на любом символе слова «Эдуард» и наберите команду + `"ayiw`{normal} + +Эта команда означает следующее: + *в регистр(") с названием(a) скопировать(y) только(i) слово(w)* + + 3. Сдвиньте каретку вперёд на слово «печенье» + (это можно сделать одним из следующих способов: + `fп`{normal} или `3fч`{normal}, или `$`{normal}, или `/пе`{normal}) + и наберите команду + `"byiw`{normal} + + 4. Переместите каретку на любой символ слова «Виктор» и наберите на клавиатуре + `ciwa`{normal} + +Эта команда означает следующее: + *изменить(c) только(i) слово(w) на <содержимое регистра(r)> с названием(a)* + + 5. Установите каретку на любой символ слова «тортов» и наберите + `ciwb`{normal} + +а) Отныне Эдуард будет отвечать за раздачу печенья +б) Таким образом Виктор имеет единоличные права по распределению тортов + +**Примечание.** + Регистры можно использовать также и для вырезания текста, например, + по команде `"sdiw`{normal} будет выполнено удаление слова под кареткой + в регистр с названием «s». + +Разделы документации: + [регистры](registers) + [именованные регистры](quote_alpha) + [перемещение](text-objects) + [CTRL-R](i_CTRL-R) + + +# Урок 2.1.2. РЕГИСТР РЕЗУЛЬТАТА ВЫЧИСЛЕНИЙ + +** Вставка результатов вычислений напрямую в текст ** + + 1. Переместите каретку к строке помеченной ✗ + + 2. Установите каретку на любой цифре приведённого числа + + 3. Наберите на клавиатуре `ciw=60*60*24`{normal} ``{normal} + + 4. Переместите каретку в конец следующей строки, переключите редактор в режим + вставки, и добавьте сегодняшнюю дату с помощью следующей команды + `=`{normal}`system('date')`{vim} ``{normal} + +Примечание. + Результат вызова функции `system()`{vim} зависит от текущей операционной + системы, например, в ОС Windows необходимо использовать такую команду + `system('date /t')`{vim} или `:r!date /t`{vim} + +Правильно ли я помню, что в сутках 84600 секунд? +Сегодняшняя дата + +Примечание. + Тот же результат можно получить с помощью такой команды + `:pu=`{normal}`system('date')`{vim} или более короткой команды `:r!date`{vim} + +Разделы документации: + [регистр результата вычислений](quote=) + + +# Урок 2.1.3. НУМЕРОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim + +** Как команды `yy`{normal} и `dd`{normal} влияют на содержимое регистров ** + + 1. Переместите каретку к строке помеченной ✓ + + 2. Скопируйте эту строку и проверьте состояние регистров с помощью команды + `:reg`{vim} ``{normal} + + 3. Удалите строку, начинающуюся с цифры 0, с помощью команды `"cdd`{normal} + и ещё раз проверьте состояние регистров (где будет строка, начинающаяся + с цифры 0?) + + 4. Продолжайте удалять все последующие нумерованные строки, проверяя состояние + регистров после каждой операции. + +**Примечание.** + В ходе этих действий вы заметите, что ранее удалённые строки смещаются вниз + по мере того, как новые удалённые строки добавляются в перечень регистров. + + 5. Теперь вставьте содержимое регистров в следующем порядке: c, 7, 4, 8, 2. + То есть наберите команды `"cp`{normal}, `"7p`{normal} и так далее. + +0. Здесь +9. шататься +8. секретное +7. будет +6. на +5. шесте +4. это +3. войны +2. послание +1. наградой + + +**Примечание.** + Целые строки, удалённые по команде `dd`{normal}, дольше сохраняются + в нумерованных регистрах, чем строки, которые были скопированы или когда + с оператором удаления указывается объект текста для перемещения каретки. + +Разделы документации: + [нумерованные регистры](quote_number) + + +# Урок 2.1.4. ИЗЯЩЕСТВО ЗАКЛАДОК + +** Избегайте действий, свойственных для дятлокодеров ** + +**Примечание.** + При написании программ часто возникает необходимость перемещения больших + фрагментов кода. Приём, приведённый далее, поможет избежать подсчёта номеров + строк, требуемых для операций вроде `"a147d`{normal} или `:945,1091d a`{vim}, + или даже хуже — `i=1091-935`{normal}, как первое действие. + + 1. Переместите каретку к строке помеченной ✓ + + 2. Установите каретку на следующую строку, где начинается описание функции, + и поставьте закладку, воспользовавшись командой `ma`{normal} + +**Примечание.** + Неважно где будет находиться каретка в этой строке. + + 3. С помощью следующей команды `$%`{normal} установите каретку на последний + символ в этой строке с последующим перемещением на окончание блока кода + + 4. Удалите весь это блок кода в регистр с названием «a» с помощью команды + `"ad'a`{normal} + +Эта команда означает следующее: + *в регистр(") с названием (a) поместить удалённые строки от позиции каретки + до строки, в которой установлена закладка(') с названием (a)* + + 5. Вставьте удалённый блок между символами BBB и CCC с помощь команды + `"ap`{normal} + +~~~ cmd +AAA +function itGotRealBigRealFast() { + if ( somethingIsTrue ) { + doIt() + } + // таксономия нашей функции изменилась, и её текущее положение больше + // не имеет привязки к алфавитному порядку + + // а теперь представьте, что здесь сотни строк кода + + // было бы глупо искать начальную и конечную строку этого блока кода, + // чтобы записывать или запоминать номер строки для каждой из них +} +BBB +CCC +~~~ + +**Примечание.** + Пространство именования закладок и регистров не пересекаются между собой, + поэтому регистр «a» полностью независим от закладки с таким же названием «a». + Это правило не распространяется на регистры и макросы. + +Разделы документации: + [закладки](marks) + [перемещение к закладкам](mark-motions) (различие между \` и ') + + +# РЕЗЮМЕ УРОКА 2.1 + + 1. Чтобы сохранить (при удалении или копировании) текст для последующей + вставки, используйте имеющиеся 26 именованных регистра (a-z). + 2. Чтобы скопировать целое слово при нахождении каретки на любом символе + в этом слове, воспользуйтесь командой `yiw`{normal} + 3. Чтобы изменить целое слово при нахождении каретки на любом символе в этом + слове, воспользуйтесь командой `ciw`{normal} + 4. Чтобы в режиме вставки вставить текст непосредственно из регистра, + воспользуйтесь командой `a`{normal} + + 5. Чтобы в режиме вставки вставить результат вычисления простых математических + операций, воспользуйтесь командой `=60*60`{normal} ``{normal} + 6. Чтобы в режиме вставки вставить результат выполнения команд системы, + воспользуйтесь командой `=`{normal}`system('ls -l')`{vim} + + 7. Чтобы просмотреть содержимое регистров, воспользуйтесь командой `:reg`{vim} + 8. Учитывайте распределение удалённых целиком строк по команде `dd`{normal} — + это нумерованные регистры в порядке убывания, т. е. от 1 до 9. + Помните, что в нумерованных регистрах дольше хранятся те строки, которые + были уделены целиком, в отличие от любых других операций + 9. Учитывайте, что в нумерованных регистрах кратковременно сохраняется всё + что скопировано. + + 10. Чтобы установить закладку в режиме команд, воспользуйтесь командой + `m[a-zA-Z0-9]`{normal} + 11. Чтобы переместить каретку на строку в которой установлена закладка, + воспользуйтесь командой `'`{normal} + + +# ЗАКЛЮЧЕНИЕ + + На этом пока заканчивается вторая глава учебника по редактору Vim. + Работа над этой главой будет продолжена. + + Вторая глава учебника была написана Полом Д. Паркером (Paul D. Parker). + + Restorer, перевод на русский язык, 2025, restorer@mail2k.ru diff --git a/runtime/tutor/ru/vim-02-beginner.tutor.json b/runtime/tutor/ru/vim-02-beginner.tutor.json new file mode 100644 index 0000000000..2338901fbb --- /dev/null +++ b/runtime/tutor/ru/vim-02-beginner.tutor.json @@ -0,0 +1,10 @@ +{ + "expect": { + "46": -1, + "47": "б) Таким образом Эдуард имеет единоличные права по распределению печенья", + "80": "Правильно ли я помню, что в сутках 86400 секунд?", + "81": -1, + "114": -1, + "167": -1 + } +} diff --git a/src/Makefile b/src/Makefile index fffbf722b6..d6c76b102e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -2354,6 +2354,7 @@ installrtbase: $(HELPSOURCE)/vim.1 $(DEST_VIM) $(VIMTARGET) $(DEST_RT) \ $(DEST_IMPORT) $(DEST_IMPORT)/dist \ $(DEST_PLUG) \ $(DEST_TUTOR) $(DEST_TUTOR)/en $(DEST_TUTOR)/it $(DEST_TUTOR)/sr \ + $(DEST_TUTOR)/ru \ $(DEST_SPELL) $(DEST_COMP) -$(SHELL) ./installman.sh install $(DEST_MAN) "" $(INSTALLMANARGS) # Generate the help tags with ":helptags" to handle all languages. @@ -2484,15 +2485,17 @@ installgtutorbin: $(DEST_BIN) $(INSTALL_DATA) gvimtutor $(DEST_BIN)/$(GVIMNAME)tutor chmod $(SCRIPTMOD) $(DEST_BIN)/$(GVIMNAME)tutor -installtutor: $(DEST_RT) $(DEST_TUTOR)/en $(DEST_TUTOR)/it $(DEST_TUTOR)/sr +installtutor: $(DEST_RT) $(DEST_TUTOR)/en $(DEST_TUTOR)/it $(DEST_TUTOR)/sr $(DEST_TUTOR)/ru -$(INSTALL_DATA) $(TUTORSOURCE)/README* $(TUTORSOURCE)/tutor* $(DEST_TUTOR) -$(INSTALL_DATA) $(TUTORSOURCE)/en/* $(DEST_TUTOR)/en/ -$(INSTALL_DATA) $(TUTORSOURCE)/it/* $(DEST_TUTOR)/it/ + -$(INSTALL_DATA) $(TUTORSOURCE)/ru/* $(DEST_TUTOR)/ru/ -$(INSTALL_DATA) $(TUTORSOURCE)/sr/* $(DEST_TUTOR)/sr/ -rm -f $(DEST_TUTOR)/*.info chmod $(HELPMOD) $(DEST_TUTOR)/* chmod $(DIRMOD) $(DEST_TUTOR)/en chmod $(DIRMOD) $(DEST_TUTOR)/it + chmod $(DIRMOD) $(DEST_TUTOR)/ru chmod $(DIRMOD) $(DEST_TUTOR)/sr # Install the spell files, if they exist. This assumes at least the English @@ -2715,7 +2718,7 @@ $(DESTDIR)$(exec_prefix) $(DEST_BIN) \ $(DEST_LANG) $(DEST_KMAP) $(DEST_COMP) $(DEST_MACRO) \ $(DEST_PACK) $(DEST_TOOLS) \ $(DEST_TUTOR) $(DEST_TUTOR)/en $(DEST_TUTOR)/it \ - $(DEST_TUTOR)/sr \ + $(DEST_TUTOR)/sr $(DEST_TUTOR)/ru \ $(DEST_SPELL) \ $(DEST_AUTO) $(DEST_AUTO)/dist $(DEST_AUTO)/xml \ $(DEST_AUTO)/cargo $(DEST_AUTO)/rust \ @@ -2901,6 +2904,7 @@ uninstall_runtime: -rm -rf $(DEST_PACK) -rm -rf $(DEST_TUTOR)/en -rm -rf $(DEST_TUTOR)/it + -rm -rf $(DEST_TUTOR)/ru -rm -rf $(DEST_TUTOR)/sr -rm -rf $(DEST_TUTOR) -rm -rf $(DEST_SPELL) diff --git a/src/version.c b/src/version.c index 7e317b3289..d293eba6aa 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1210, /**/ 1209, /**/