translation(ru): updated tutor files
Commit:
https://github.com/vim/vim/commit/3ac486b8a6aee983606d88a9027329769b9944ce
Author: RestorerZ <[email protected]>
Date: Tue Jan 6 11:14:57 2026 +0000
translation(ru): updated tutor files
closes: https://github.com/vim/vim/issues/19090
Signed-off-by: RestorerZ <[email protected]>
Signed-off-by: Christian Brabandt <[email protected]>
diff --git a/runtime/tutor/ru/vim-01-beginner.tutor
b/runtime/tutor/ru/vim-01-beginner.tutor
index e4c327c68..0f5d5d134 100644
--- a/runtime/tutor/ru/vim-01-beginner.tutor
+++ b/runtime/tutor/ru/vim-01-beginner.tutor
@@ -1,6 +1,6 @@
# ДОБРО ПОЖАЛОВАТЬ НА ЗАНЯТИЯ ПО РЕДАКТОРУ Vim
-## ГЛАВА ПЕРВАЯ
+# ГЛАВА ПЕРВАЯ
Программа Vim — это очень мощный текстовый редактор, имеющий множество
команд, и все их просто невозможно описать в рамках этого учебника.
@@ -53,11 +53,11 @@
** Чтобы перемещать каретку в указанных направлениях, нажмите клавиши
`h`, `j`, `k`, `l`**
- ↑ *Подсказка.*
- k Клавиша `h`{normal} слева и удобна для перемещения влево.
+ ↑ *Подсказка.*
+ k Клавиша `h`{normal} слева и удобна для перемещения влево.
← h l → Клавиша `l`{normal} справа и удобна для перемещения
вправо.
- j Клавиша `j`{normal} похожа на стрелку »вниз».
- ↓
+ j Клавиша `j`{normal} похожа на стрелку »вниз».
+ ↓
1. Перемещайте каретку в разных направлениях, пока не ощутите уверенность.
2. Удерживайте нажатой клавишу «вниз» (`j`{normal}) для беспрерывного
@@ -281,9 +281,9 @@
этот оператор.
Так, например, формат команды удаления с оператором [d](d) следующий:
- d объект
+ d объект
где
- d - оператор удаления;
+ d - оператор удаления;
объект - область текста (указаны ниже), к которой будет применён оператор.
Краткий перечень объектов:
@@ -410,7 +410,7 @@
укажите их число, например, `2w`{normal}
6. Формат команд изменения:
- оператор [число] объект
+ оператор [число] объект
где
оператор - необходимые действия, например, [d](d) для удаления;
[число] - количество подпадающих под действие оператора объектов,
@@ -539,7 +539,7 @@
где c - оператор изменения;
[число] - количество изменяемых объектов (необязательная часть);
- объект - объект текста, который будет изменён.
+ объект - объект текста, который будет изменён.
Теперь переходите к следующему уроку.
@@ -836,7 +836,7 @@
Некоторые полезные примеры:
(Windows) (UNIX)
- `:!dir`{vim} `:!ls`{vim} - вывести перечень файлов в каталоге;
+ `:!dir`{vim} `:!ls`{vim} - вывести перечень файлов в каталоге;
`:!del ФАЙЛ`{vim} `:!rm ФАЙЛ`{vim} - удалить файл с указанным названием.
2. По команде [:w](:w) ФАЙЛ — текущий редактируемый файл будет записан
@@ -1099,13 +1099,21 @@
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} и будет подставлено наименование файла,
если оно уникальное.
**Примечание.**
diff --git a/runtime/tutor/ru/vim-02-beginner.tutor
b/runtime/tutor/ru/vim-02-beginner.tutor
index d2b69181a..0d8b6e65e 100644
--- a/runtime/tutor/ru/vim-02-beginner.tutor
+++ b/runtime/tutor/ru/vim-02-beginner.tutor
@@ -1,6 +1,6 @@
# ДОБРО ПОЖАЛОВАТЬ НА ЗАНЯТИЯ ПО РЕДАКТОРУ Vim
-## ГЛАВА ВТОРАЯ
+# ГЛАВА ВТОРАЯ
Что‐то неожиданное и непонятное?
Если это ваше первое знакомство с редактором Vim и вы планировали начать
@@ -11,12 +11,54 @@
~~~
Или просто откройте по ссылке [первую главу](@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
** Копирование с сохранением двух разных слов и последующая их вставка в текст
**
@@ -35,13 +77,13 @@
`"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}
а) Отныне Эдуард будет отвечать за раздачу печенья
б) Таким образом Виктор имеет единоличные права по распределению тортов
@@ -58,7 +100,7 @@
[CTRL-R](i_CTRL-R)
-# Урок 2.1.2. РЕГИСТР РЕЗУЛЬТАТА ВЫЧИСЛЕНИЙ
+# Урок 2.1.3. РЕГИСТР РЕЗУЛЬТАТА ВЫЧИСЛЕНИЙ
** Вставка результатов вычислений напрямую в текст **
@@ -66,11 +108,11 @@
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} зависит от текущей операционной
@@ -88,14 +130,14 @@
[регистр результата вычислений](quote=)
-# Урок 2.1.3. НУМЕРОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim
+# Урок 2.1.4. НУМЕРОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim
** Как команды `yy`{normal} и `dd`{normal} влияют на содержимое регистров **
1. Переместите каретку к строке помеченной ✓
- 2. Скопируйте эту строку и проверьте состояние регистров с помощью команды
- `:reg`{vim} `<ENTER>`{normal}
+ 2. Скопируйте строку, начинающуюся с цифры 0, и проверьте состояние регистров
+ с помощью команды `:reg`{vim} `<ENTER>`{normal}
3. Удалите строку, начинающуюся с цифры 0, с помощью команды `"cdd`{normal}
и ещё раз проверьте состояние регистров (где будет строка, начинающаяся
@@ -132,7 +174,58 @@
[нумерованные регистры](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. ИЗЯЩЕСТВО ЗАКЛАДОК
** Избегайте действий, свойственных для дятлокодеров **
@@ -140,7 +233,7 @@
При написании программ часто возникает необходимость перемещения больших
фрагментов кода. Приём, приведённый далее, поможет избежать подсчёта
номеров
строк, требуемых для операций вроде `"a147d`{normal} или `:945,1091d
a`{vim},
- или даже хуже — `i<CTRL-r>=1091-935<ENTER>`{normal}, как первое действие.
+ или даже хуже — `i<CTRL-R>=1091-935<ENTER>`{normal}, как первое действие.
1. Переместите каретку к строке помеченной ✓
@@ -165,7 +258,7 @@
~~~ 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, [email protected]
diff --git a/runtime/tutor/ru/vim-02-beginner.tutor.json
b/runtime/tutor/ru/vim-02-beginner.tutor.json
index 2338901fb..1bf6a9819 100644
--- a/runtime/tutor/ru/vim-02-beginner.tutor.json
+++ b/runtime/tutor/ru/vim-02-beginner.tutor.json
@@ -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
}
}
diff --git a/runtime/tutor/tutor1.ru b/runtime/tutor/tutor1.ru
index c303c25da..9d4cab334 100644
--- a/runtime/tutor/tutor1.ru
+++ b/runtime/tutor/tutor1.ru
@@ -983,7 +983,9 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
На этом можно завершить первую часть занятий посвящённых редактору Vim.
- Далее вы можете ознакомиться со второй частью занятий.
+ Далее вы можете ознакомиться со второй частью занятий, в которой
+ рассматриваются такие понятия как регистры, закладки и работа с текстовыми
+ объектами.
Целью данного курса было дать краткий обзор редактора Vim, достаточный для
того, чтобы не возникало сложностей при его использовании. Это далеко не
diff --git a/runtime/tutor/tutor2.ru b/runtime/tutor/tutor2.ru
index b3282045c..a3a96b7eb 100644
--- a/runtime/tutor/tutor2.ru
+++ b/runtime/tutor/tutor2.ru
@@ -11,13 +11,53 @@
ещё раз, набрав в командной оболочке такую команду
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
** Копирование с сохранением двух разных слов и последующая их вставка в текст
**
@@ -34,13 +74,13 @@
"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. РЕГИСТР РЕЗУЛЬТАТА ВЫЧИСЛЕНИЙ
** Вставка результатов вычислений напрямую в текст **
@@ -66,11 +106,11 @@
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() зависит от текущей операционной системы,
@@ -89,7 +129,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Урок 2.1.3. НУМЕРОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim
+ Урок 2.1.4. НУМЕРОВАННЫЕ РЕГИСТРЫ В РЕДАКТОРЕ Vim
** Как команды yy и dd влияют на содержимое регистров **
@@ -132,7 +172,59 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Урок 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. ИЗЯЩЕСТВО ЗАКЛАДОК
** Избегайте действий, свойственных для дятлокодеров **
@@ -140,7 +232,7 @@
При написании программ часто возникает необходимость перемещения больших
фрагментов кода. Приём, приведённый далее, поможет избежать подсчёта
номеров
строк, требуемых для операций вроде "a147d или :945,1091d a , или даже
- хуже — i<C-r>=1091-935<ENTER> , как первое действие.
+ хуже — i<CTRL-R>=1091-935<ENTER> , как первое действие.
1. Переместите каретку к строке помеченной --->
@@ -192,39 +284,55 @@
Резюме урока 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, [email protected]
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/vim_dev/E1vd51l-00Gopb-U9%40256bit.org.