]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
translation(ru): updated tutor files
authorRestorerZ <restorer@mail2k.ru>
Tue, 6 Jan 2026 11:14:57 +0000 (11:14 +0000)
committerChristian Brabandt <cb@256bit.org>
Tue, 6 Jan 2026 11:14:57 +0000 (11:14 +0000)
closes: #19090

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/tutor/ru/vim-01-beginner.tutor
runtime/tutor/ru/vim-02-beginner.tutor
runtime/tutor/ru/vim-02-beginner.tutor.json
runtime/tutor/tutor1.ru
runtime/tutor/tutor2.ru

index e4c327c68f9df823f2fcff73ec5cf662ea4add51..0f5d5d134968273a2e6bd57d4ec3c58f8715cee3 100644 (file)
@@ -1,6 +1,6 @@
 #             ДОБРО  ПОЖАЛОВАТЬ  НА  ЗАНЯТИЯ  ПО  РЕДАКТОРУ  Vim
 
-##                             ГЛАВА ПЕРВАЯ
+#                              ГЛАВА ПЕРВАЯ
 
    Программа Vim — это очень мощный текстовый редактор, имеющий множество
    команд, и все их просто невозможно описать в рамках этого учебника.
 ** Чтобы перемещать каретку в указанных направлениях, нажмите клавиши
                        `h`, `j`, `k`, `l`**
 
-           ↑        *Подсказка.*
-           k         Клавиша `h`{normal} слева и удобна для перемещения влево.
+                *Подсказка.*
+          k         Клавиша `h`{normal} слева и удобна для перемещения влево.
        ← h   l →     Клавиша `l`{normal} справа и удобна для перемещения вправо.
-           j         Клавиша `j`{normal} похожа на стрелку »вниз».
-           
+          j         Клавиша `j`{normal} похожа на стрелку »вниз».
+          ↓
   1. Перемещайте каретку в разных направлениях, пока не ощутите уверенность.
 
   2. Удерживайте нажатой клавишу «вниз» (`j`{normal}) для беспрерывного
   этот оператор.
   Так, например, формат команды удаления с оператором [d](d) следующий:
 
-       d   объект
+       d   объект
   где
-    d      - оператор удаления;
+    d     - оператор удаления;
     объект - область текста (указаны ниже), к которой будет применён оператор.
 
   Краткий перечень объектов:
      укажите их число, например, `2w`{normal}
 
   6. Формат команд изменения:
-            оператор   [число]   объект
+           оператор    [число]   объект
      где
       оператор - необходимые действия, например, [d](d) для удаления;
       [число]  - количество подпадающих под действие оператора объектов,
 
      где c - оператор изменения;
         [число] - количество изменяемых объектов (необязательная часть);
-         объект - объект текста, который будет изменён.
+        объект - объект текста, который будет изменён.
 
 Теперь переходите к следующему уроку.
 
 
       Некоторые полезные примеры:
    (Windows)           (UNIX)
-    `:!dir`{vim}        `:!ls`{vim}      - вывести перечень файлов в каталоге;
+    `:!dir`{vim}        `:!ls`{vim}      - вывести перечень файлов в каталоге;
     `:!del ФАЙЛ`{vim}       `:!rm ФАЙЛ`{vim} - удалить файл с указанным названием.
 
   2. По команде [:w](:w) ФАЙЛ — текущий редактируемый файл будет записан
   4. Нажмите клавиши `<CTRL-D>`{normal}, и будет показан перечень команд
      редактора Vim начинающихся с буквы «e».
 
-  5. Нажмите клавиши `d<TAB>`{normal}, и будет подставлено полное название
-     команды `:edit`{vim}.
+  5. Нажмите клавиши `d<TAB>`{normal}, и будет отображено меню с возожными
+     наименованиями команд для подстановки (или подставлено соответствующее
+     наименование, если введёная команда достаточно уникально, например, для
+     `:ed`{vim}<TAB> будет подставлена команда `:edit`{vim}).
 
-  6. Теперь напечатайте пробел и начало наименования существующего файла
+  6. Используйте <TAB> или <CTRL-N> для перехода к следующему соответствию.
+     Или <SHIFT-TAB> либо CTRL-P> для перехода к предыдущему соответствию.
+
+  7. Выберите пункт edit. И команда `edit`{vim} будет автоматически подставлена
+     в командную строку.
+
+  8. Теперь напечатайте пробел и начало наименования существующего файла
        `:edit TE`{vim}
 
-  7. Нажмите клавишу `<TAB>`{normal} и будет подставлено наименование файла,
+  9. Нажмите клавишу `<TAB>`{normal} и будет подставлено наименование файла,
      если оно уникальное.
 
 **Примечание.**
index d2b69181af9dede6bdb9310068e4f3444a4173df..0d8b6e65e87427acbfe63e71bc65420b5524b95a 100644 (file)
@@ -1,6 +1,6 @@
 #              ДОБРО  ПОЖАЛОВАТЬ  НА  ЗАНЯТИЯ  ПО  РЕДАКТОРУ  Vim
 
-##                             ГЛАВА  ВТОРАЯ
+#                              ГЛАВА  ВТОРАЯ
 
   Что‐то неожиданное и непонятное?
   Если это ваше первое знакомство с редактором Vim и вы планировали начать
 ~~~
   Или просто откройте по ссылке [первую главу](@tutor:vim-01-beginner) учебника.
 
-  Приблизительное время, необходимое для изучения второй главы учебника
+  Приблизительное время, необходимое для изучения второй главы учебника,
   составляет около 8–10 минут, и зависит от того, сколько времени вы посвятите
   выполнению заданий.
 
 
-#          Урок 2.1.1. ИМЕНОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim
+#          Урок 2.1.1. ОСВОЕНИЕ ТЕКСТОВЫХ ОБЪЕКТОВ
+
+** Точечные операции с логическими частями текста используя текстовые объекты **
+
+  1. Попрактикуйтесь в аккуратной работе со словами:
+     - Поместите каретку на любое слово в строке почеченной ✓
+     - Наберите `diw`{normal}, чтобы удалить ТОЛЬКО слово
+       (слово без окружающих пробелов)
+     - Наберите `daw`{normal}, чтобы удалить СЛОВО (включая конечные пробелы)
+     - Попробуйте другие операторы: `ciw`{normal} (изменить),
+       `yiw`{normal} (копировать), `gqiw`{normal} (форматировать)
+
+Потренируйтесь здесь на словах: «Vim'овский», (text_object) и 'мощный'.
+
+  2. Работа с содержимым скобок:
+     - Поместите каретку внутри любой пары () {} [] <> в строке помеченной ✓
+     - Наберите `di(`{normal} или `dib`{normal} 
+       (удалить всё, что внутри круглых скобок)
+     - Наберите `da(`{normal} или `dab`{normal}
+       (удалить внутри круглых скобок и сами скобки)
+     - Попробуйте то же самое с `i"`{normal} и `a"`{normal} для машинописных
+       кавычек или `it`{normal} и `at`{normal} для тегов HTML и XML.
+
+Примеры: {фигурные}, [прямоугольные], <угловые>, (круглые) и "quoted".
+
+  3. Операции с абзацами и предложениями:
+     - Наберите `dip`{normal} для удаления ТОЛЬКО абзаца
+       (каретка может быть в любом месте абзаца)
+     - Наберите `vap`{normal} для визуального выделения всего абзаца
+     - Попробуйте `das`{normal} для удаления предложения
+       (работает при наличии знаков препинания .!? )
+
+  4. Расширенные комбинации:
+     - `ciwnew<ESC>`{normal}  — изменить текущее слово на «new»
+     - `ciw"<CTRL-R>-"<ESC>`{normal}  — обернуть всю строку в кавычки
+     - `gUit`{normal}  — преобразовать внутреннее содержимое HTML-тега в верхний
+                       регистр
+     - `va"p`{normal}        — выделить текст в кавычках и вставить поверх него
+
+Итоговое задание: (Измените "этот" текст) [применив {различные} операции]<
+
+
+#          Урок 2.1.2. ИМЕНОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim
 
 ** Копирование с сохранением двух разных слов и последующая их вставка в текст **
 
      `"byiw`{normal}
 
   4. Переместите каретку на любой символ слова «Виктор» и наберите на клавиатуре
-     `ciw<CTRL-r>a<ESC>`{normal}
+     `ciw<CTRL-R>a<ESC>`{normal}
 
 Эта команда означает следующее:
     *изменить(c) только(i) слово(w) на <содержимое регистра(r)> с названием(a)*
 
   5. Установите каретку на любой символ слова «тортов» и наберите
-     `ciw<CTRL-r>b<ESC>`{normal}
+     `ciw<CTRL-R>b<ESC>`{normal}
 
 а) Отныне Эдуард будет отвечать за раздачу печенья
 б) Таким образом Виктор имеет единоличные права по распределению тортов
        [CTRL-R](i_CTRL-R)
 
 
-#          Урок 2.1.2. РЕГИСТР РЕЗУЛЬТАТА ВЫЧИСЛЕНИЙ
+#          Урок 2.1.3. РЕГИСТР РЕЗУЛЬТАТА ВЫЧИСЛЕНИЙ
 
 ** Вставка результатов вычислений напрямую в текст **
 
 
   2. Установите каретку на любой цифре приведённого числа
 
-  3. Наберите на клавиатуре `ciw<CTRL-r>=60*60*24`{normal} `<ENTER>`{normal}
+  3. Наберите на клавиатуре `ciw<CTRL-R>=60*60*24`{normal} `<ENTER>`{normal}
 
   4. Переместите каретку в конец следующей строки, переключите редактор в режим
      вставки, и добавьте сегодняшнюю дату с помощью следующей команды
-    `<CTRL-r>=`{normal}`system('date')`{vim} `<ENTER>`{normal}
+    `<CTRL-R>=`{normal}`system('date')`{vim} `<ENTER>`{normal}
 
 Примечание.
     Результат вызова функции `system()`{vim} зависит от текущей операционной
        [регистр результата вычислений](quote=)
 
 
-#          Урок 2.1.3. НУМЕРОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim
+#          Урок 2.1.4. НУМЕРОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim
 
 ** Как команды `yy`{normal} и `dd`{normal} влияют на содержимое регистров **
 
   1. Переместите каретку к строке помеченной ✓
 
-  2. Ð¡ÐºÐ¾Ð¿Ð¸Ñ\80Ñ\83йÑ\82е Ñ\8dÑ\82Ñ\83 Ñ\81Ñ\82Ñ\80окÑ\83 Ð¸ Ð¿Ñ\80овеÑ\80Ñ\8cÑ\82е Ñ\81оÑ\81Ñ\82оÑ\8fние Ñ\80егиÑ\81Ñ\82Ñ\80ов Ñ\81 Ð¿Ð¾Ð¼Ð¾Ñ\89Ñ\8cÑ\8e ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ\8b
-     `:reg`{vim} `<ENTER>`{normal}
+  2. Ð¡ÐºÐ¾Ð¿Ð¸Ñ\80Ñ\83йÑ\82е Ñ\81Ñ\82Ñ\80окÑ\83, Ð½Ð°Ñ\87инаÑ\8eÑ\89Ñ\83Ñ\8eÑ\81Ñ\8f Ñ\81 Ñ\86иÑ\84Ñ\80Ñ\8b 0, Ð¸ Ð¿Ñ\80овеÑ\80Ñ\8cÑ\82е Ñ\81оÑ\81Ñ\82оÑ\8fние Ñ\80егиÑ\81Ñ\82Ñ\80ов
+     с помощью команды `:reg`{vim} `<ENTER>`{normal}
 
   3. Удалите строку, начинающуюся с цифры 0, с помощью команды `"cdd`{normal}
      и ещё раз проверьте состояние регистров (где будет строка, начинающаяся
        [нумерованные регистры](quote_number)
 
 
-#          Урок 2.1.4. ИЗЯЩЕСТВО ЗАКЛАДОК
+#          Урок 2.1.5. СПЕЦИАЛЬНЫЕ РЕГИСТРЫ
+
+** Применение регистров буфера обмена и «чёрная дыра» для расширенной правки **
+
+ Примечание.
+    Для использования системного буфера обмена в системе Linux требуются
+    библиотеки X11 или Wayland, и сам редактор Vim должен быть скомпилирован
+    с включённым компонентом «+clipboard» (обычно это максимальная версия).
+    Это можно проверить с помощью следующих команд редактора Vim:
+    `:version`{vim} и `:echo has('clipboard_working')`{vim}
+
+  1. Регистры буфера обмена `+`{normal} и `*`{normal}:
+     - `"+y`{normal} — копирование в системный буфер обмена
+       (например, по команде `"+yy`{normal} будет скопирована текущая строка)
+     - `"+p`{normal} — вставка из системного буфера обмена
+     - `"*`{normal}  — основной выбор в X11 (средняя кнопка «мыши»),
+     а `"+`{normal}  — буфер обмена
+
+"+yy в этой строке, затем вставьте в другое приложение по Ctrl+V или Cmd+V
+
+  2. Регистр «чёрная дыра» `_`{normal} стирает текст:
+     - `"_daw`{normal} — сотрёт слово без сохранения в регистре
+     - Полезно, когда вы не хотите перезаписывать регистр по умолчанию `"`{normal}
+     - Обратите внимание, что здесь используется текстовый объект «a Word»,
+       описанный в предыдущем уроке
+     - `"_dd`{normal}  — сотрёт строку без сохранения
+     - `"_dap`{normal} — сотрёт абзац без сохранения
+     - Комбинируйте со счётчиками: `3"_dw`{normal}
+
+"_diw на любом слове, чтобы удалить его, не затрагивая историю копирования
+
+  3. Совместите с визуальным выделением:
+   - Выделите текст с помощью <SHIFT-V>, a затем `"+y`{normal}
+   - Чтобы вставить из буфера обмена в режиме вставки — `<CTRL-R>+`{normal}
+   - Попробуйте открыть другое приложение и вставить из системного буфера обмена
+
+  4. Запомните:
+   - Регистры буфера обмена доступны между разными экземплярами редактора Vim
+   - Регистр буфера обмена не всегда работает
+   - Регистр «чёрная дыра» предотвращает случайную перезапись других регистров
+   - Регистр `"`{normal} по-прежнему доступен для копирования и вставки
+   - Именованные регистры (a-z) остаются частными для каждой сессии Vim
+
+  5. Устранение неполадок с буфером обмена:
+     - Проверьте доступность с помощью команды
+       `:echo has('clipboard_working')`{vim}
+     - При выводе 1 — означает доступно, 0 — означает, что компонент не включен
+     - В систме Linux может потребоваться пакет vim-gtk или vim-x11
+       (посмотрите вывод команды `:version`{vim})
+
+
+#          Урок 2.1.6. ИЗЯЩЕСТВО ЗАКЛАДОК
 
 ** Избегайте действий, свойственных для дятлокодеров **
 
     При написании программ часто возникает необходимость перемещения больших
     фрагментов кода. Приём, приведённый далее, поможет избежать подсчёта номеров
     строк, требуемых для операций вроде `"a147d`{normal} или `:945,1091d a`{vim},
-    или даже хуже — `i<CTRL-r>=1091-935<ENTER>`{normal}, как первое действие.
+    или даже хуже — `i<CTRL-R>=1091-935<ENTER>`{normal}, как первое действие.
 
   1. Переместите каретку к строке помеченной ✓
 
 
 ~~~ cmd
 AAA
-function itGotRealBigRealFast() {
+function ItGotRealBigRealFast() {
   if ( somethingIsTrue ) {
     doIt()
   }
@@ -193,33 +286,47 @@ CCC
 
 #          РЕЗЮМЕ УРОКА 2.1
 
-  1. Чтобы сохранить (при удалении или копировании) текст для последующей
+  1. Текстовые объекты обеспечивают точное редактирование:
+     - `iw`{normal} или `aw`{normal} — только или включая слово
+     - `i[`{normal} или `a[`{normal} — внутри или включая скобки
+     - `i"`{normal} или `a"`{normal} — внутри или включая кавычки
+     - `it`{normal} или `at`{normal} — внутри или включая теги
+     - `ip`{normal} или `ap`{normal} — только или включая абзаца
+     - `is`{normal} или `as`{normal} — только или включая предложения
+
+  2. Чтобы сохранить (при удалении или копировании) текст для последующей
      вставки, используйте имеющиеся 26 именованных регистра (a-z).
-  2. Чтобы скопировать целое слово при нахождении каретки на любом символе
+  3. Чтобы скопировать целое слово при нахождении каретки на любом символе
      в этом слове, воспользуйтесь командой `yiw`{normal}
-  3. Чтобы изменить целое слово при нахождении каретки на любом символе в этом
+  4. Чтобы изменить целое слово при нахождении каретки на любом символе в этом
      слове, воспользуйтесь командой `ciw`{normal}
-  4. Чтобы в режиме вставки вставить текст непосредственно из регистра,
-     воспользуйтесь командой `<CTRL-r>a`{normal}
+  5. Чтобы в режиме вставки вставить текст непосредственно из регистра,
+     воспользуйтесь командой `<CTRL-R>a`{normal}
 
-  5. Чтобы в режиме вставки вставить результат вычисления простых математических
-     операций, воспользуйтесь командой `<CTRL-r>=60*60`{normal} `<ENTER>`{normal}
-  6. Чтобы в режиме вставки вставить результат выполнения команд системы,
-     воспользуйтесь командой `<CTRL-r>=`{normal}`system('ls -l')`{vim}
+  6. Чтобы в режиме вставки вставить результат вычисления простых математических
+     операций, воспользуйтесь командой `<CTRL-R>=60*60<ENTER>`{normal}
+  7. Чтобы в режиме вставки вставить результат выполнения команд системы,
+     воспользуйтесь командой `<CTRL-R>=`{normal}`system('ls -l')`{vim}
 
-  7. Чтобы просмотреть содержимое регистров, воспользуйтесь командой `:reg`{vim}
-  8. Учитывайте распределение удалённых целиком строк по команде `dd`{normal} —
+  8. Чтобы просмотреть содержимое регистров, воспользуйтесь командой `:reg`{vim}
+  9. Учитывайте распределение удалённых целиком строк по команде `dd`{normal} —
      это нумерованные регистры в порядке убывания, т. е. от 1 до 9.
      Помните, что в нумерованных регистрах дольше хранятся те строки, которые
      были уделены целиком, в отличие от любых других операций
 9. Учитывайте, что в нумерованных регистрах кратковременно сохраняется всё
10. Учитывайте, что в нумерованных регистрах кратковременно сохраняется всё
      что скопировано.
 
- 10. Чтобы установить закладку в режиме команд, воспользуйтесь командой
+ 11. Чтобы установить закладку в режиме команд, воспользуйтесь командой
      `m[a-zA-Z0-9]`{normal}
- 11. Чтобы переместить каретку на строку в которой установлена закладка,
+ 12. Чтобы переместить каретку на строку в которой установлена закладка,
      воспользуйтесь командой `'`{normal}
 
+ 13. Специальные регистры:
+     - `"+`{normal} и `"*`{normal} — системный буфер обмена (зависит от ОС)
+     - `"_`{normal} — «чёрная дыра» (стирание удалённого или скопированного текста)
+     - `"=`{normal} — регистр результата вычислений
+     - `"-`{normal} — регистр малых удалений
+
 
 #          ЗАКЛЮЧЕНИЕ
 
@@ -227,5 +334,6 @@ CCC
   Работа над этой главой будет продолжена.
 
   Вторая глава учебника была написана Полом Д. Паркером (Paul D. Parker).
+                                   и Кристианом Брабандт (Christian Brabandt).
 
     Restorer, перевод на русский язык, 2025, restorer@mail2k.ru
index 2338901fbb947bd2af52e60017689eb99923a3f4..1bf6a981920974164cdd4d80c1923a9e721e8807 100644 (file)
@@ -1,10 +1,15 @@
 {
   "expect": {
-    "46": -1,
-    "47": "б) Таким образом Эдуард имеет единоличные права по распределению печенья",
-    "80": "Правильно ли я помню, что в сутках 86400 секунд?",
-    "81": -1,
-    "114": -1,
-    "167": -1
+    "31": -1,
+    "42": -1,
+    "58": -1,
+    "88": -1,
+    "89": "б) Таким образом Эдуард имеет единоличные права по распределению печенья",
+    "122": "Правильно ли я помню, что в сутках 86400 секунд?",
+    "123": -1,
+    "156": -1,
+    "195": -1,
+    "206": -1,
+    "260": -1
   }
 }
index c303c25daacbfef8d9bd0db0fd9851ebeac58264..9d4cab334660f83dc80877d914db7d5e5ee59aa4 100644 (file)
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   На этом можно завершить первую часть занятий посвящённых редактору Vim.
-  Далее вы можете ознакомиться со второй частью занятий.
+  Далее вы можете ознакомиться со второй частью занятий, в которой
+  рассматриваются такие понятия как регистры, закладки и работа с текстовыми
+  объектами.
 
   Целью данного курса было дать краткий обзор редактора Vim, достаточный для
   того, чтобы не возникало сложностей при его использовании. Это далеко не
index b3282045c56fe4ae9658fcbb7bc8fda4ef89a78c..a3a96b7eb067ffc19460e7ccf2e7d243d56c93a2 100644 (file)
   ещё раз, набрав в командной оболочке такую команду
       vimtutor --chapter 1 ru
 
-  Приблизительное время, необходимое для изучения второй главы учебника
+  Приблизительное время, необходимое для изучения второй главы учебника,
   составляет около 8–10 минут, и зависит от того, сколько времени вы посвятите
   выполнению заданий.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-                Урок 2.1.1. ИМЕНОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim
+                   Урок 2.1.1. ОСВОЕНИЕ ТЕКСТОВЫХ ОБЪЕКТОВ
+
+** Точечные операции с логическими частями текста используя текстовые объекты **
+
+  1. Попрактикуйтесь в аккуратной работе со словами:
+     - Поместите каретку на любое слово в строке почеченной --->
+     - Наберите  diw , чтобы удалить ТОЛЬКО слово (слово без окружающих пробелов)
+     - Наберите  daw , чтобы удалить СЛОВО (включая конечные пробелы)
+     - Попробуйте другие операторы:  ciw  (изменить),  yiw  (копировать),
+       gqiw  (форматировать)
+
+---> Потренируйтесь здесь на словах: «Vim'овский», (text_object) и 'мощный'.
+
+  2. Работа с содержимым скобок:
+     - Поместите каретку внутри любой пары () {} [] <> в строке помеченной --->
+     - Наберите  di(  или  dib  (удалить всё, что внутри круглых скобок)
+     - Наберите  da(  или  dab  (удалить внутри круглых скобок и сами скобки)
+     - Попробуйте то же самое с  i"  и  a"  для машинописных кавычек или
+       it  и  at  для тегов HTML и XML.
+
+---> Примеры: {фигурные}, [прямоугольные], <угловые>, (круглые) и "quoted".
+
+  3. Операции с абзацами и предложениями:
+     - Наберите  dip  для удаления ТОЛЬКО абзаца
+       (каретка может быть в любом месте абзаца)
+     - Наберите  vap  для визуального выделения всего абзаца
+     - Попробуйте  das  для удаления предложения
+       (работает при наличии знаков препинания .!? )
+
+  4. Расширенные комбинации:
+     - ciwnew<ESC>  — изменить текущее слово на «new»
+     - ciw"<CTRL-R>-"<ESC> — обернуть всю строку в кавычки
+     - gUit         — преобразовать внутреннее содержимое HTML-тега в верхний
+                       регистр
+     - va"p         — выделить текст в кавычках и вставить поверх него
+
+---> Итоговое задание: (Измените "этот" текст) [применив {различные} операции]<
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+                Урок 2.1.2. ИМЕНОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim
 
 ** Копирование с сохранением двух разных слов и последующая их вставка в текст **
 
      "byiw
 
   4. Переместите каретку на любой символ слова «Виктор» и наберите на клавиатуре
-     ciw<C-r>a<ESC>
+     ciw<CTRL-R>a<ESC>
 
 Эта команда означает следующее:
     изменить(c) только(i) слово(w) на <содержимое регистра(r)> с названием(a)
 
   5. Установите каретку на любой символ слова «тортов» и наберите
-     ciw<C-r>b<ESC>
+     ciw<CTRL-R>b<ESC>
 
 --->  а) Отныне Эдуард будет отвечать за раздачу печенья
       б) Таким образом Виктор имеет единоличные права по распределению тортов
@@ -58,7 +98,7 @@
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-                  Урок 2.1.2. РЕГИСТР РЕЗУЛЬТАТА ВЫЧИСЛЕНИЙ
+                  Урок 2.1.3. РЕГИСТР РЕЗУЛЬТАТА ВЫЧИСЛЕНИЙ
 
              ** Вставка результатов вычислений напрямую в текст **
 
 
   2. Установите каретку на любой цифре приведённого числа
 
-  3. Наберите на клавиатуре  ciw<C-r>=60*60*24<ENTER>
+  3. Наберите на клавиатуре  ciw<CTRL-R>=60*60*24<ENTER>
 
   4. Переместите каретку в конец следующей строки, переключите редактор в режим
      вставки, и добавьте сегодняшнюю дату с помощью следующей команды
-     <C-r>=system('date')<ENTER>
+     <CTRL-R>=system('date')<ENTER>
 
 Примечание.
     Результат вызова функции system() зависит от текущей операционной системы,
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-              Урок 2.1.3. НУМЕРОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim
+              Урок 2.1.4. НУМЕРОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim
 
          ** Как команды  yy  и  dd  влияют на содержимое регистров **
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-                        Урок 2.1.4. ИЗЯЩЕСТВО ЗАКЛАДОК
+                       Урок 2.1.5. СПЕЦИАЛЬНЫЕ РЕГИСТРЫ
+
+** Применение регистров буфера обмена и «чёрная дыра» для расширенной правки **
+
+ Примечание.
+    Для использования системного буфера обмена в системе Linux требуются
+    библиотеки X11 или Wayland, и сам редактор Vim должен быть скомпилирован
+    с включённым компонентом «+clipboard» (обычно это максимальная версия).
+    Это можно проверить с помощью следующих команд редактора Vim:
+    :version
+    и
+    :echo has('clipboard_working')
+
+  1. Регистры буфера обмена  +  и  *  :
+     - "+y  — копирование в системный буфер обмена
+       (например, по команде  "+yy  будет скопирована текущая строка)
+     - "+p  — вставка из системного буфера обмена
+     - "*   — основной выбор в X11 (средняя кнопка «мыши»), а "+ — буфер обмена
+
+---> "+yy в этой строке, затем вставьте в другое приложение по Ctrl+V или Cmd+V
+
+  2. Регистр «чёрная дыра»  _  стирает текст:
+     - "_daw  — сотрёт слово без сохранения в регистре
+     - Полезно, когда вы не хотите перезаписывать регистр по умолчанию "
+     - Обратите внимание, что здесь используется текстовый объект «a Word»,
+       описанный в предыдущем уроке
+     - "_dd   — сотрёт строку без сохранения
+     - "_dap  — сотрёт абзац без сохранения
+     - Комбинируйте со счётчиками: 3"_dw
+
+---> "_diw на любом слове, чтобы удалить его, не затрагивая историю копирования
+
+  3. Совместите с визуальным выделением:
+   - Выделите текст с помощью <SHIFT-V>, a затем "+y
+   - Чтобы вставить из буфера обмена в режиме вставки — <CTRL-R> +
+   - Попробуйте открыть другое приложение и вставить из системного буфера обмена
+
+  4. Запомните:
+   - Регистры буфера обмена доступны между разными экземплярами редактора Vim
+   - Регистр буфера обмена не всегда работает
+   - Регистр «чёрная дыра» предотвращает случайную перезапись других регистров
+   - Регистр по умолчанию " по-прежнему доступен для копирования и вставки
+   - Именованные регистры (a-z) остаются частными для каждой сессии Vim
+
+  5. Устранение неполадок с буфером обмена:
+     - Проверьте доступность с помощью команды :echo has('clipboard_working')
+     - При выводе 1 — означает доступно, 0 — означает, что компонент не включен
+     - В систме Linux может потребоваться пакет vim-gtk или vim-x11
+       (посмотрите вывод команды :version)
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+                        Урок 2.1.6. ИЗЯЩЕСТВО ЗАКЛАДОК
 
               ** Избегайте действий, свойственных для дятлокодеров **
 
     При написании программ часто возникает необходимость перемещения больших
     фрагментов кода. Приём, приведённый далее, поможет избежать подсчёта номеров
     строк, требуемых для операций вроде  "a147d  или  :945,1091d a  , или даже
-    хуже — i<C-r>=1091-935<ENTER> , как первое действие.
+    хуже — i<CTRL-R>=1091-935<ENTER> , как первое действие.
 
   1. Переместите каретку к строке помеченной --->
 
 
                                Резюме урока 2.1
 
-  1. Чтобы сохранить (при удалении или копировании) текст для последующей
+  1. Текстовые объекты обеспечивают точное редактирование:
+     - iw или aw — только или включая слово
+     - i[ или a[ — внутри или включая скобки
+     - i" или a" — внутри или включая кавычки
+     - it или at — внутри или включая теги
+     - ip или ap — только или включая абзаца
+     - is или as — только или включая предложения
+
+  2. Чтобы сохранить (при удалении или копировании) текст для последующей
      вставки, используйте имеющиеся 26 именованных регистра (a-z).
-  2. Чтобы скопировать целое слово при нахождении каретки на любом символе
+  3. Чтобы скопировать целое слово при нахождении каретки на любом символе
      в этом слове, воспользуйтесь командой  yiw
-  3. Чтобы изменить целое слово при нахождении каретки на любом символе в этом
+  4. Чтобы изменить целое слово при нахождении каретки на любом символе в этом
      слове, воспользуйтесь командой  ciw
-  4. Чтобы в режиме вставки вставить текст непосредственно из регистра,
-     воспользуйтесь командой  <C-r>a
+  5. Чтобы в режиме вставки вставить текст непосредственно из регистра,
+     воспользуйтесь командой  <CTRL-R>a
 
-  5. Чтобы в режиме вставки вставить результат вычисления простых математических
-     операций, воспользуйтесь командой  <C-r>=60*60<ENTER>
-  6. Чтобы в режиме вставки вставить результат выполнения команд системы,
-     воспользуйтесь командой  <C-r>=system('ls -l')
+  6. Чтобы в режиме вставки вставить результат вычисления простых математических
+     операций, воспользуйтесь командой  <CTRL-R>=60*60<ENTER>
+  7. Чтобы в режиме вставки вставить результат выполнения команд системы,
+     воспользуйтесь командой  <CTRL-R>=system('ls -l')<ENTER>
 
-  7. Чтобы просмотреть содержимое регистров, воспользуйтесь командой  :reg
-  8. Учитывайте распределение удалённых целиком строк по команде  dd  — это
+  8. Чтобы просмотреть содержимое регистров, воспользуйтесь командой  :reg
+  9. Учитывайте распределение удалённых целиком строк по команде  dd  — это
      нумерованные регистры в порядке убывания, т. е. от 1 до 9.
      Помните, что в нумерованных регистрах дольше хранятся те строки, которые
      были уделены целиком, в отличие от любых других операций
 9. Учитывайте, что в нумерованных регистрах кратковременно сохраняется всё
10. Учитывайте, что в нумерованных регистрах кратковременно сохраняется всё
      что скопировано.
 
- 10. Чтобы установить закладку в режиме команд, воспользуйтесь командой
+ 11. Чтобы установить закладку в режиме команд, воспользуйтесь командой
      m[a-zA-Z0-9]
- 11. Чтобы переместить каретку на строку в которой установлена закладка,
+ 12. Чтобы переместить каретку на строку в которой установлена закладка,
      воспользуйтесь командой  '
 
+ 13. Специальные регистры:
+     - "+ и "* — системный буфер обмена (зависит от ОС)
+     - "_      — «чёрная дыра» (стирание удалённого или скопированного текста)
+     - "=      — регистр результата вычислений
+     - "-      — регистр малых удалений
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
   На этом пока заканчивается вторая глава учебника по редактору Vim.
   Работа над этой главой будет продолжена.
 
-  Вторая глава учебника была написана Полом Д. Паркером (Paul D. Parker).
+  Вторая глава учебника была написана Полом Д. Паркером (Paul D. Parker)
+                                   и Кристианом Брабандт (Christian Brabandt).
 
     Restorer, перевод на русский язык, 2025, restorer@mail2k.ru
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~