1
<!--pulled in by kwrite too-->
2
<chapter id="vi-input-mode-chapter">
6
>&Erlend.Hamberg; &Erlend.Hamberg.mail; </author>
7
<othercredit role="translator"
15
>yurchor@ukr.net</email
19
>Переклад українською</contrib
26
>Режим введення VI</title>
28
<sect1 id="vi-mode-sect1">
30
>Режим введення VI</title>
33
>Метою використання режиму VI є не повна заміна Vim і підтримка всіх можливостей Vim. Його метою є використання способу редагування текстів Vim, — та вивчених прийомів користування Vim, — у програмах, які використовують текстовий редактор &kappname; для вбудованих режимів редагування.</para>
36
>Режим VI чудово інтегрується у сторонні програми і відхиляється від поведінки Vim там, де це має сенс. Наприклад, команда <userinput
40
> у режимі VI &kappname; відкриває діалогове вікно збереження файла.</para>
43
>Увімкнути режим VI для всіх нових панелей редагування можна за допомогою пункту меню <menuchoice
47
>Налаштувати &kappname;...</guimenuitem
51
>Режим вводу VI</guimenuitem
53
>. На цій вкладці ви зможете встановити параметри роботи режиму введення VI, ви значити або змінити прив’язки клавіш у цьому режимі. Увімкнути або вимкнути режим введення VI можна також за допомогою пункту <guimenuitem
54
>Режим вводу VI</guimenuitem
57
>. (Типовим клавіатурним скороченням є <keycombo action="simul"
65
> зазвичай відповідає клавіша <keysym
71
>На відміну від більшості клавіатурних скорочень &kde;, багато клавіатурних команд режиму Vi є залежними від регістру символів. Це означає, що команди <userinput
75
> мають зовсім різне призначення. Щоб ввести команду <userinput
77
> (копіювати), переконайтеся, що режим <keysym
79
> (літер верхнього регістру) вимкнено і натисніть клавішу <keycap
81
>. Щоб ввести команду <userinput
83
> (копіювати до кінця рядка), скористайтеся комбінацією клавіш <keycombo action="simul"
90
>Висловлене вище зауваження не стосується команд, у яких використовується клавіша. Ці команди можна ввести у будь-якому з режимів <keycap
92
> без натискання &Shift;, але у частині команд використовується комбінація з &Ctrl;, після якої слід натиснути іншу клавішу, регістр якої слід брати до уваги. Наприклад, щоб ввести команду «<keycombo action="simul"
98
>» (перемкнутися на праву панель у розділеному перегляді), переконайтеся що режим літер верхнього регістру вимкнено, натисніть комбінацію клавіш <keycombo action="simul"
102
>, відпустіть клавіш, а потім натисніть клавішу <keycap
107
<sect2 id="vi-incompatibilities">
109
>Несумісності з Vim</title>
112
>З Vim несумісні лише декілька можливостей режиму VI &kappname;, якщо не брати до уваги багатьох речей, які просто не реалізовано. Нижче наведено список цих можливостей з поясненнями причин несумісності.</para>
116
>&kappname;: <userinput
118
> і <keycombo action="simul"
122
> відповідають повторному виконанню скасованої команди.</para>
124
>Vim: <keycombo action="simul"
128
> звичайне повторення дії, <keycap
130
> призначено для скасування всіх останніх змін у одному рядку.</para>
132
>Причиною того, що <keycap
134
> прив’язано до повторення дії у режимі VI &kappname;, є те, що клавіатурне скорочення <keycombo action="simul"
138
> типово зайнято у &kappname; заміною (пошук з заміною). Типово режим VI не змінює клавіатурні скорочення &kappname; (ви можете зробити це вручну за допомогою сторінки <menuchoice
142
>Налаштувати &kappname;...</guimenuitem
144
>Редагування</guimenu
146
>Режим вводу Vi</guimenuitem
148
>), тому дія з повернення редагування має бути доступна у «звичайному» режимі натискання комбінацій клавіш. Окрім того, дія команди <userinput
150
> у Vim не дуже добре збігається з внутрішньою системою скасування &kappname;, отже її підтримка є доволі складним завданням.</para>
154
>&kappname;: <userinput
158
> відкриває діалогове вікно <guilabel
166
> друкує рядки вказаного діапазону, подібно до свого дідуся, ed.</para>
168
>Команди на зразок <userinput
172
> доступні не лише у режимі VI, але і користувачам «звичайних» режимів &kappname;. Тому <userinput
176
> відкриває діалогове вікно друку відповідно до принципів однорідності, замість імітації поведінки Vim.</para>
180
>&kappname;: <userinput
182
> копіює дані до кінця рядка.</para>
186
> копіює весь рядок, подібно до команди <userinput
192
>Поведінка VI для команди <userinput
194
> насправді є вадою. Для обох команд, зміни і вилучення, команди <userinput
202
> виконують дію на поточному рядку, а <userinput
206
> виконує дію над даними від позиції курсора до кінця рядка. Але обидві команди, <userinput
212
>, копіюють поточний рядок. У режимі VI &kappname; <userinput
214
> копіює дані до кінця рядка. Така поведінка описана як «логічніша» у <ulink url="http://vimdoc.sourceforge.net/htmldoc/change.html#Y"
215
>документації до Vim</ulink
220
>&kappname;: <userinput
224
> відкривають [<replaceable
225
>кількість</replaceable
226
>] нових рядків і переводять програму у режим вставлення.</para>
232
> відкривають нових рядок і вставляють текст [<replaceable
233
>кількість</replaceable
234
>] разів з виходом з режиму вставлення.</para>
236
>Так зроблено в результаті узагальнення досвіду багатьох людей, які висловлювали здивування поведінкою Vim на каналі vim у IRC (#vim на freenode).</para>
242
<sect2 id="vi-switching-modes">
244
>Перемикання режимів</title>
250
>Звичайний режим</emphasis
251
> надає вам змогу вводити команди навігації або редагування документа і є типовим. Повернутися до цього режиму з будь-якого іншого режиму можна натисканням клавіші &Esc;. </para
256
>Візуальний режим</emphasis
257
> надає вам змогу позначати текст у документі. У цьому режимі можна користуватися більшістю команд звичайного режиму. Ви можете перевести команду у цей режим введенням літери <userinput
259
> для позначення символів або <userinput
261
> для позначення рядків. </para
266
>Режим вставлення</emphasis
267
> надає вам змогу редагувати документ безпосередньо. Ви можете перевести програму у цей режим натисканням клавіші <userinput
269
> або за допомогою одної з декількох інших команд, наведених нижче. </para
274
>Режим команд</emphasis
275
> відкриває панель командного рядка &kappname;. За допомогою цієї панелі ви зможете виконувати значну частину команд, доступних у реалізаціях Vi, а також деякі специфічні для &kappname; команди. Докладніше про ці команди можна дізнатися з розділу <xref linkend="advanced-editing-tools-commandline"/>. Користуватися режимом команд просто: натисніть клавішу <keycap
277
>, вкажіть команду і натисніть клавішу &Enter;.</para>
280
<!-- add a picture like http://de.wikipedia.org/wiki/Vi#Arbeitsmodi here? -->
283
<sect2 id="vi-integration">
285
>Інтеграція з командами Kate</title>
290
>Програма автоматично перемикатиметься на візуальний режим, якщо фрагмент тексту буде позначено за допомогою миші. Також перемикання відбуватиметься у разі використання функцій Kate, які позначають фрагменти тексту, зокрема «Вибрати все» (вибір або за допомогою меню, або за допомогою комбінації клавіш <keycombo action="simul"
299
>Передбачено підтримку позначок Vi та <link linkend="kate-part-bookmarks"
301
>. У разі створення позначки у режимі Vi буде також створено відповідну закладку Kate, яку буде показано у меню <guimenu
303
>. І навпаки, якщо буде створено закладку Kate, програма також створить відповідну позначку Vi у нульовій позиції рядка.</para>
309
<sect2 id="vi-normal-visual-mode-commands">
311
>Підтримувані команди звичайного/візуального режимів</title>
337
>Перейти у режим вставлення, додавати символи після курсора</para
349
>Перейти у режим вставлення, додавати символи після рядка</para
361
>Перейти у режим вставлення, додавати символи перед курсором</para
373
>Перейти у візуальний режим; позначати символи</para
385
>Перейти у візуальний режим; позначати рядки</para
397
>Додати новий рядок під поточним</para
409
>Додати новий рядок перед поточним</para
421
>Об'єднати рядки</para
433
>Змінити: з наступним визначенням позиції для вилучення і переходом у режим вставлення</para
445
>Змінити до кінця рядка: вилучити текст до кінця рядка і увійти до режиму вставлення</para
457
>Змінити рядок: вилучити рядок і перейти у режим вставлення</para
469
>Замінити символ</para
481
>Замінити рядок</para
493
>Вилучити рядок</para
505
>З наступним визначенням позиції для вилучення</para
517
>Вилучити до кінця рядка</para
529
>Вилучити символ праворуч від курсора</para
541
>Вилучити символі ліворуч від курсора</para
553
>З визначенням позиції для встановлення нижнього регістру</para
565
>Перевести всі символи поточного рядка у нижній регістр</para
577
>З визначенням позиції для встановлення верхнього регістру</para
589
>Перетворити символи поточного рядка на символи у верхньому регістрі</para
601
>З визначенням позиції для копіювання</para
613
>Копіювати рядок</para
625
>Копіювати рядок</para
637
>Вставити після курсора</para
649
>Вставити перед курсором</para
661
>З визначенням символу, який слід замінити символ за курсором</para
673
>Увійти у командний режим</para
703
><keycombo action="simul"
735
>Встановити позначку (може бути використано для наступних пересувань текстом)</para
747
>Знайти наступне</para
759
>Знайти попереднє</para
771
>Збільшити відступ рядка</para
783
>Зменшити відступ рядка</para
795
>Збільшити відступ рядків</para
807
>Зменшити відступ рядків</para
813
><keycombo action="simul"
827
><keycombo action="simul"
835
>Сторінка вгору</para
847
>Вивести значення ASCII для символу</para
859
>Повторити останню зміну</para
871
>Команда вирівнювання рядка</para
883
>Команда вирівнювання рядків</para
895
>Змінити регістр поточного символу</para
901
><keycombo action="simul"
909
>Розділити перегляд горизонтально</para
915
><keycombo action="simul"
923
>Розділити перегляд вертикально</para
929
><keycombo action="simul"
939
>Циклічний перехід до наступної панелі поділу</para
945
><keycombo action="simul"
953
><keycombo action="seq"
954
><keycombo action="simul"
965
>Перейти до лівої панелі поділу</para
971
><keycombo action="simul"
979
><keycombo action="seq"
980
><keycombo action="simul"
991
>Перейти до правої панелі поділу</para
997
><keycombo action="simul"
1005
><keycombo action="seq"
1006
><keycombo action="simul"
1017
>Перейти до верхньої панелі поділу</para
1023
><keycombo action="simul"
1031
><keycombo action="seq"
1032
><keycombo action="simul"
1043
>Перейти до нижньої панелі поділу</para
1051
<sect2 id="vi-supported-motions">
1053
>Підтримувані пересування кодом</title>
1056
>Цими командами можна скористатися для пересування документом у звичайному та візуальному режимах або у поєднанні з однією з описаних вище команд. Перед цими командами можна вказувати параметр, який визначає кількість рухів, які слід виконати.</para>
1200
>У кінець рядка</para
1212
>У кінець рядка</para
1224
>До першого символу рядка (позиція 0)</para
1236
>До першого символу рядка</para
1248
>До першого непорожнього символу рядка</para
1260
>З додаванням символу, до якого слід перейти праворуч від курсора</para
1272
>З додаванням символу, до якого слід перейти ліворуч від курсора</para
1284
>З додаванням символу, до якого слід перейти праворуч від курсора, з розташуванням курсора перед цим символом</para
1296
>З додаванням символу, до якого слід перейти ліворуч від курсора, з розташуванням курсора перед цим символом</para
1308
>До першого рядка</para
1320
>До останнього рядка</para
1332
>До наступного слова</para
1344
>До наступного слова, відокремленого пробілом</para
1356
>До попереднього слова</para
1368
>До попереднього слова, відокремленого пробілом</para
1380
>До кінця слова</para
1392
>До кінця слова, відокремленого пробілом</para
1404
>До кінця попереднього слова</para
1416
>До кінця попереднього слова, відокремленого пробілом</para
1428
>З визначенням номера позиції у рядку для переходу</para
1440
>З визначенням елемента для переходу</para
1464
>До першого непробільного символу рядка з позначкою</para
1476
>До попередньої початкової дужки</para
1488
>До наступної початкової дужки</para
1500
>До попередньої завершальної дужки</para
1512
>До наступної завершальної дужки</para
1518
><keycombo action="simul"
1526
>Перейти вперед до наступного місця</para
1532
><keycombo action="simul"
1540
>Повернутися до попереднього місця</para
1551
>Перейти до першого рядка на екрані</entry
1561
>Перейти до рядка посередині екрана</entry
1571
>Перейти до останнього рядка на екрані</entry
1578
>значення у відсотках</replaceable
1584
>Перейти до вказаної у відсотках позиції документа</para
1596
>Перейти на рядок вгору візуально (у разі використання динамічного перенесення рядків)</para
1608
>Перейти на рядок вниз візуально (у разі використання динамічного перенесення рядків)</para
1616
<sect2 id="vi-supported-text-objects">
1618
>Підтримувані текстові об’єкти</title>
1621
>Цими командами можна скористатися для позначення частин тексту документа.</para>
1647
>Блок слова: слово з пробілами</para
1659
>Слово: слово без пробілів</para
1671
>Від попередніх подвійних лапок (<userinput
1673
>) до наступних подвійних лапок, разом з лапками</para
1685
>Від попередніх подвійних лапок (<userinput
1687
>) до наступних подвійних лапок, без лапок</para
1699
>Від попередніх одинарних лапок (<userinput
1701
>) до наступних одинарних лапок, разом з лапками</para
1713
>Від попередніх одинарних лапок (<userinput
1715
>) до наступних одинарних лапок, без лапок</para
1727
>Від попередньої початкової круглої дужки [<userinput
1729
>] до наступної завершальної круглої дужки [<userinput
1731
>], разом з дужками</para
1743
>Від попередньої початкової круглої дужки [<userinput
1745
>] до наступної завершальної круглої дужки [<userinput
1759
>Від попередньої початкової квадратної дужки (<userinput
1761
>) до наступної завершальної квадратної дужки (<userinput
1763
>), разом з дужками</para
1775
>Від попередньої початкової квадратної дужки (<userinput
1777
>) до наступної завершальної квадратної дужки (<userinput
1791
>Від попередньої початкової фігурної дужки (<userinput
1793
>) до наступної завершальної фігурної дужки (<userinput
1795
>), разом з дужками</para
1807
>Від попередньої початкової фігурної дужки (<userinput
1809
>) до наступної завершальної фігурної дужки (<userinput
1823
>Від попередньої початкової кутової дужки (<userinput
1825
>) до наступної завершальної кутової дужки (<userinput
1827
>), разом з дужками</para
1839
>Від попередньої початкової кутової дужки (<userinput
1841
>) до наступної завершальної кутової дужки (<userinput
1855
>Від попередніх зворотних лапок (<userinput
1857
>) до наступних зворотних лапок, разом з лапками</para
1869
>Від попередніх зворотних лапок (<userinput
1871
>) до наступних зворотних лапок, без лапок</para
1879
<sect2 id="vi-insert-mode-commands">
1881
>Підтримувані команди режиму вставлення</title>
1901
><keycombo action="simul"
1909
>Зменшити відступ</para
1915
><keycombo action="simul"
1923
>Збільшити відступ</para
1929
><keycombo action="simul"
1937
>Вставити знизу</para
1943
><keycombo action="simul"
1951
>Вилучити слово</para
1957
><keycombo action="simul"
1965
>Вилучити слово</para
1971
><keycombo action="simul"
1979
>Перейти до першого символу документа</para
1985
><keycombo action="simul"
1994
>Вставити вміст регістра <literal
2001
><keycombo action="simul"
2006
>команда</replaceable
2011
>Увійти до звичайного режиму лише для однієї команди</para
2017
><keycombo action="simul"
2025
>Збільшити поточне позначене число</para
2031
><keycombo action="simul"
2039
>Зменшити поточне позначене число</para
2047
<sect2 id="vi-text-object">
2049
>Текстовий об’єкт, обмежений комами</title>
2052
>Цього об’єкта немає у Vim. За допомогою текстового об’єкта, обмеженого комами, просто змінювати списки параметрів у C-подібних мовах та інших списках, поділених комами. Таким текстовим об’єктом є фрагмент тексту між двома комами або між комою і дужкою. На нашій ілюстрації показано три діапазони текстових об’єктів, позначені червоним тлом.</para>
2054
<screenshot id="screenshot-resources">
2056
>Приклад відокремлених комами об’єктів</screeninfo>
2059
><imagedata fileref="comma-to.png" format="PNG"/></imageobject>
2062
>Приклад відокремлених комами об’єктів</phrase
2066
>Відокремлені комами текстові об’єкти визначають діапазони даних. Якщо, наприклад, курсор перебуває у <replaceable
2068
>, натискання клавіш <userinput
2070
>, («змінити між комами») вилучить <replaceable
2071
>double arg2</replaceable
2072
> і розташує курсор між двома комами у режимі вставлення. Це дуже зручний спосіб зміни параметрів функцій.</para
2079
<sect2 id="vi-missing-features">
2081
>Нереалізовані можливості</title>
2084
>Як ми вже зазначали раніше, метою режиму VI &kappname; не є 100% підтримка можливостей Vim, хоча деякі з корисних функцій все ж ще не реалізовано:</para>
2088
>Візуальний режим прямокутного вибору, особливо можливість додавати текст перед або позаду візуально позначеного блоку.</para
2092
>Доступність команд ex у програмах, відмінних від самої &kappname;.</para
2096
>Код пошуку потребує удосконалення, а команди <userinput
2100
> мають виконувати пошук за формальним виразом.</para