<chapter id="vi-input-mode-chapter">
<chapterinfo>
<authorgroup>
<author
><firstname
>Erlend</firstname
> <surname
>Hamberg</surname
> <email
>ehamberg@gmail.com</email
></author>
<othercredit role="translator"
><firstname
>Юрій</firstname
><surname
>Чорноіван</surname
><affiliation
><address
><email
>yurchor@ukr.net</email
></address
></affiliation
><contrib
>Переклад українською</contrib
></othercredit
> 
</authorgroup>
</chapterinfo>

<title
>Режим введення VI</title>

<sect1 id="vi-mode-sect1">
<title
>Режим введення VI</title>

<para
>Метою використання режиму VI є не повна заміна Vim і підтримка всіх можливостей Vim. Його метою є використання способу редагування текстів Vim, — та вивчених прийомів користування Vim, — у програмах, які використовують текстовий редактор &kate; для вбудованих режимів редагування.</para>

<para
>Режим VI чудово інтегрується у сторонні програми і відхиляється від поведінки Vim там, де це має сенс. Наприклад, команда <userinput
><command
>:w</command
></userinput
> у режимі VI &kate; відкриває діалогове вікно збереження файла.</para>

<para
>Увімкнути режим VI для всіх нових панелей редагування можна за допомогою пункту меню <menuchoice
><guimenu
>Параметри</guimenu
><guimenuitem
>Налаштувати &kate;...</guimenuitem
> <guimenu
>Редагування</guimenu
><guimenuitem
>Режим вводу VI</guimenuitem
></menuchoice
>. На цій вкладці ви зможете встановити параметри роботи режиму введення VI, ви значити або змінити прив’язки клавіш у цьому режимі. Увімкнути або вимкнути режим введення VI можна також за допомогою пункту <guimenuitem
>Режим вводу VI</guimenuitem
> меню <guimenu
>Зміни</guimenu
>. (Типовим клавіатурним скороченням є <keycombo action="simul"
><keysym
>Meta</keysym
>&Ctrl;<keycap
>V</keycap
></keycombo
>, де <keysym
>Meta</keysym
> зазвичай відповідає клавіша <keysym
>Windows</keysym
>).</para>

<sect2 id="vi-incompatibilities">
<title
>Несумісності з Vim</title>

<para
>З Vim несумісні лише декілька можливостей режиму VI &kate;, якщо не брати до уваги багатьох речей, які просто не реалізовано. Нижче наведено список цих можливостей з поясненнями причин несумісності.</para>
<itemizedlist>
<listitem>
<para
>&kate;: <keycap
>U</keycap
> і <keycombo action="simul"
>&Ctrl;<keycap
>R</keycap
></keycombo
> відповідають повторенню дії.</para>
<para
>Vim: <keycombo action="simul"
>&Ctrl;<keycap
>R</keycap
></keycombo
> звичайне повторення дії, <keycap
>U</keycap
> призначено для скасування всіх останніх змін у одному рядку.</para>
<para
>Причиною того, що <keycap
>U</keycap
> прив’язано до повторення дії у режимі VI &kate;, є те, що клавіатурне скорочення <keycombo action="simul"
>&Ctrl;<keycap
>R</keycap
></keycombo
> типово зайнято у &kate; заміною (пошук з заміною). Типово режим VI не змінює клавіатурні скорочення &kate; (ви можете зробити це вручну за допомогою сторінки <menuchoice
><guimenu
>Параметри</guimenu
><guimenuitem
>Налаштувати &kate;...</guimenuitem
> <guimenu
>Редагування</guimenu
><guimenuitem
>Режим вводу Vi</guimenuitem
></menuchoice
>), тому дія з повернення редагування має бути доступна у «звичайному» режимі натискання комбінацій клавіш. Окрім того, дія команди <keycap
>U</keycap
> у Vim не дуже добре збігається з внутрішньою системою скасування &kate;, отже її підтримка є доволі складним завданням.</para>
</listitem>
<listitem>
<para
>&kate;: <userinput
><command
>print</command
></userinput
> відкриває діалогове вікно <guilabel
>Друк</guilabel
>.</para>
<para
>Vim: <userinput
><command
>print</command
></userinput
> друкує рядки вказаного діапазону, подібно до свого дідуся, ed.</para>
<para
>Команди на зразок <userinput
><command
>:print</command
></userinput
> доступні не лише у режимі VI, але і користувачам «звичайних» режимів &kate;. Тому <userinput
><command
>:print</command
></userinput
> відкриває діалогове вікно друку відповідно до принципів однорідності, замість імітації поведінки Vim.</para>
</listitem>
<listitem>
<para
>&kate;: <keycap
>Y</keycap
> копіює дані до кінця рядка.</para>
<para
>Vim: <keycap
>Y</keycap
> копіює весь рядок, подібно до команди <keycap
>y</keycap
><keycap
>y</keycap
>.</para>
<para
>Поведінка VI для команди <keycap
>Y</keycap
> насправді є вадою. Для обох команд, зміни і вилучення, команди  <keycap
>c</keycap
><keycap
>c</keycap
>/ <keycap
>d</keycap
><keycap
>d</keycap
> виконують дію на поточному рядку, а <keycap
>C</keycap
>/<keycap
>D</keycap
> виконує дію над даними від позиції курсора до кінця рядка. Але обидві команди, <keycap
>y</keycap
><keycap
>y</keycap
> і <keycap
>Y</keycap
>, копіюють поточний рядок. У режимі VI &kate; <keycap
>Y</keycap
> копіює дані до кінця рядка. Така поведінка описана як «логічніша» у <ulink url="http://vimdoc.sourceforge.net/htmldoc/change.html#Y"
>документації до Vim</ulink
>. </para>
</listitem>
<listitem>
<para
>&kate;: <keycap
>O</keycap
> і <keycap
>o</keycap
> відкривають [<replaceable
>кількість</replaceable
>] нових рядків і переводять програму у режим вставлення.</para>
<para
>Vim: <keycap
>O</keycap
> і <keycap
>o</keycap
> відкривають нових рядок і вставляють текст [<replaceable
>кількість</replaceable
>] разів з виходом з режиму вставлення.</para>
<para
>Так зроблено в результаті узагальнення досвіду багатьох людей, які висловлювали здивування поведінкою Vim на каналі vim у IRC (#vim на freenode).</para>
</listitem>
</itemizedlist>
 
</sect2>

<sect2 id="vi-switching-modes">
<title
>Перемикання режимів</title>

<itemizedlist>
<listitem>
<para
><emphasis
>Звичайний режим</emphasis
> надає вам змогу вводити команди навігації або редагування документа і є типовим. Повернутися до цього режиму з будь-якого іншого режиму можна натисканням клавіші &Esc;. </para
></listitem>
<listitem>
<para
><emphasis
>Візуальний режим</emphasis
> надає вам змогу позначати текст у документі. У цьому режимі можна користуватися більшістю команд звичайного режиму. Ви можете перевести команду у цей режим натисканням клавіші <keycap
>v</keycap
> для позначення символів або <keycap
>V</keycap
> для позначення рядків. </para
></listitem>
<listitem>
<para
><emphasis
>Режим вставлення</emphasis
> надає вам змогу редагувати документ безпосередньо. Ви можете перевести програму у цей режим натисканням клавіші <keycap
>i</keycap
> або за допомогою одної з декількох інших команд, наведених нижче. </para
></listitem>
<listitem>
<para
><emphasis
>Командний режим</emphasis
> надає вам змогу віддавати певні команди. Натисніть <keycap
>:</keycap
>, вкажіть команду і натисніть клавішу &Enter;.</para>
</listitem>
</itemizedlist>
<!-- add a picture like http://de.wikipedia.org/wiki/Vi#Arbeitsmodi here? -->
</sect2>

<sect2 id="vi-normal-visual-mode-commands">
<title
>Підтримувані команди звичайного/візуального режимів</title>

<informaltable>
<tgroup cols="2">
<!--thead>
<row>
<entry
><para
>Key</para
></entry>
<entry
><para
>Command</para
></entry>
</row>
</thead-->
<tbody>
<row
><entry
><para
><keycap
>a</keycap
></para
></entry>
<entry
><para
>Перейти у режим вставлення, додавати символи після курсора</para
></entry>
</row>
<row
><entry
><para
><keycap
>A</keycap
></para
></entry>
<entry
><para
>Перейти у режим вставлення, додавати символи після рядка</para
></entry>
</row>
<row
><entry
><para
><keycap
>i</keycap
></para
></entry>
<entry
><para
>Перейти у режим вставлення, додавати символи перед курсором</para
></entry>
</row>
<row
><entry
><para
><keycap
>v</keycap
></para
></entry>
<entry
><para
>Перейти у візуальний режим; позначати символи</para
></entry>
</row>
<row
><entry
><para
><keycap
>V</keycap
></para
></entry>
<entry
><para
>Перейти у візуальний режим; позначати рядки</para
></entry>
</row>
<row
><entry
><para
><keycap
>o</keycap
></para
></entry>
<entry
><para
>Додати новий рядок під поточним</para
></entry>
</row>
<row
><entry
><para
><keycap
>O</keycap
></para
></entry>
<entry
><para
>Додати новий рядок перед поточним</para
></entry>
</row>
<row
><entry
><para
><keycap
>J</keycap
></para
></entry>
<entry
><para
>Об'єднати рядки</para
></entry>
</row>
<row
><entry
><para
><keycap
>c</keycap
></para
></entry>
<entry
><para
>Змінити: з наступним визначенням позиції для вилучення і переходом у режим вставлення</para
></entry>
</row>
<row
><entry
><para
><keycap
>C</keycap
></para
></entry>
<entry
><para
>Змінити до кінця рядка: вилучити текст до кінця рядка і увійти до режиму вставлення</para
></entry>
</row>
<row
><entry
><para
><keycap
>c</keycap
><keycap
>c</keycap
></para
></entry>
<entry
><para
>Змінити рядок: вилучити рядок і перейти у режим вставлення</para
></entry>
</row>
<row
><entry
><para
><keycap
>s</keycap
></para
></entry>
<entry
><para
>Замінити символ</para
></entry>
</row>
<row
><entry
><para
><keycap
>S</keycap
></para
></entry>
<entry
><para
>Замінити рядок</para
></entry>
</row>
<row
><entry
><para
><keycap
>d</keycap
><keycap
>d</keycap
></para
></entry>
<entry
><para
>Вилучити рядок</para
></entry>
</row>
<row
><entry
><para
><keycap
>d</keycap
></para
></entry>
<entry
><para
>З наступним визначенням позиції для вилучення</para
></entry>
</row>
<row
><entry
><para
><keycap
>D</keycap
></para
></entry>
<entry
><para
>Вилучити до кінця рядка</para
></entry>
</row>
<row
><entry
><para
><keycap
>x</keycap
></para
></entry>
<entry
><para
>Вилучити символ праворуч від курсора</para
></entry>
</row>
<row
><entry
><para
><keycap
>X</keycap
></para
></entry>
<entry
><para
>Вилучити символі ліворуч від курсора</para
></entry>
</row>
<row
><entry
><para
><keycap
>g</keycap
><keycap
>u</keycap
></para
></entry>
<entry
><para
>З визначенням позиції для встановлення нижнього регістру</para
></entry>
</row>
<row
><entry
><para
><keycap
>g</keycap
><keycap
>u</keycap
><keycap
>u</keycap
></para
></entry>
<entry
><para
>Перевести всі символи поточного рядка у нижній регістр</para
></entry>
</row>
<row
><entry
><para
><keycap
>g</keycap
><keycap
>U</keycap
></para
></entry>
<entry
><para
>З визначенням позиції для встановлення верхнього регістру</para
></entry>
</row>
<row
><entry
><para
><keycap
>g</keycap
><keycap
>U</keycap
><keycap
>U</keycap
></para
></entry>
<entry
><para
>Перетворити символи поточного рядка на символи у верхньому регістрі</para
></entry>
</row>
<row
><entry
><para
><keycap
>y</keycap
></para
></entry>
<entry
><para
>З визначенням позиції для копіювання</para
></entry>
</row>
<row
><entry
><para
><keycap
>y</keycap
><keycap
>y</keycap
></para
></entry>
<entry
><para
>Копіювати рядок</para
></entry>
</row>
<row
><entry
><para
><keycap
>Y</keycap
></para
></entry>
<entry
><para
>Копіювати рядок</para
></entry>
</row>
<row
><entry
><para
><keycap
>p</keycap
></para
></entry>
<entry
><para
>Вставити після курсора</para
></entry>
</row>
<row
><entry
><para
><keycap
>P</keycap
></para
></entry>
<entry
><para
>Вставити перед курсором</para
></entry>
</row>
<row
><entry
><para
><keycap
>r</keycap
></para
></entry>
<entry
><para
>З визначенням символу, який слід замінити символ за курсором</para
></entry>
</row>
<row
><entry
><para
><keycap
>:</keycap
></para
></entry>
<entry
><para
>Увійти у командний режим</para
></entry>
</row>
<row
><entry
><para
><keycap
>/</keycap
></para
></entry>
<entry
><para
>Шукати</para
></entry>
</row>
<row
><entry
><para
><keycap
>u</keycap
></para
></entry>
<entry
><para
>Вернути</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>r</keycap
></keycombo
></para
></entry>
<entry
><para
>Повторити</para
></entry>
</row>
<row
><entry
><para
><keycap
>U</keycap
></para
></entry>
<entry
><para
>Повторити</para
></entry>
</row>
<row
><entry
><para
><keycap
>m</keycap
></para
></entry>
<entry
><para
>Встановити позначку (може бути використано для наступних пересувань текстом)</para
></entry>
</row>
<row
><entry
><para
><keycap
>n</keycap
></para
></entry>
<entry
><para
>Знайти наступне</para
></entry>
</row>
<row
><entry
><para
><keycap
>N</keycap
></para
></entry>
<entry
><para
>Знайти попереднє</para
></entry>
</row>
<row
><entry
><para
><keycap
>&gt;</keycap
><keycap
>&gt;</keycap
></para
></entry>
<entry
><para
>Збільшити відступ рядка</para
></entry>
</row>
<row
><entry
><para
><keycap
>&lt;</keycap
><keycap
>&lt;</keycap
></para
></entry>
<entry
><para
>Зменшити відступ рядка</para
></entry>
</row>
<row
><entry
><para
><keycap
>&gt;</keycap
></para
></entry>
<entry
><para
>Збільшити відступ рядків</para
></entry>
</row>
<row
><entry
><para
><keycap
>&lt;</keycap
></para
></entry>
<entry
><para
>Зменшити відступ рядків</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>f</keycap
></keycombo
></para
></entry>
<entry
><para
>Сторінка вниз</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>b</keycap
></keycombo
></para
></entry>
<entry
><para
>Сторінка вгору</para
></entry>
</row>
<row
><entry
><para
><keycap
>g</keycap
><keycap
>a</keycap
></para
></entry>
<entry
><para
>Вивести значення ASCII для символу</para
></entry>
</row>
<row
><entry
><para
><keycap
>.</keycap
></para
></entry>
<entry
><para
>Повторити останню зміну</para
></entry>
</row>
<row
><entry
><para
><keycap
>=</keycap
><keycap
>=</keycap
></para
></entry>
<entry
><para
>Команда вирівнювання рядка</para
></entry>
</row>
<row
><entry
><para
><keycap
>=</keycap
></para
></entry>
<entry
><para
>Команда вирівнювання рядків</para
></entry>
</row>
<row
><entry
><para
><keycap
>~</keycap
></para
></entry>
<entry
><para
>Змінити регістр поточного символу</para
></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>

<sect2 id="vi-supported-motions">
<title
>Підтримувані пересування кодом</title>

<para
>Цими командами можна скористатися для пересування документом у звичайному та візуальному режимах або у поєднанні з однією з описаних вище команд. Перед цими командами можна вказувати параметр, який визначає кількість рухів, які слід виконати.</para>

<informaltable>
<tgroup cols="2">
<!--thead>
<row>
<entry
><para
>Key</para
></entry>
<entry
><para
>Command</para
></entry>
</row>
</thead-->
<tbody>
<row
><entry
><para
><keycap
>h</keycap
></para
></entry>
<entry
><para
>Ліворуч</para
></entry>
</row>
<row
><entry
><para
><keysym
>←</keysym
></para
></entry>
<entry
><para
>Ліворуч</para
></entry>
</row>
<row
><entry
><para
>&Backspace;</para
></entry>
<entry
><para
>Ліворуч</para
></entry>
</row>
<row
><entry
><para
><keycap
>j</keycap
></para
></entry>
<entry
><para
>Вниз</para
></entry>
</row>
<row
><entry
><para
><keysym
>↓</keysym
></para
></entry>
<entry
><para
>Вниз</para
></entry>
</row>
<row
><entry
><para
><keycap
>k</keycap
></para
></entry>
<entry
><para
>Вгору</para
></entry>
</row>
<row
><entry
><para
><keysym
>↑</keysym
></para
></entry>
<entry
><para
>Вгору</para
></entry>
</row>
<row
><entry
><para
><keycap
>l</keycap
></para
></entry>
<entry
><para
>Праворуч</para
></entry>
</row>
<row
><entry
><para
><keysym
>→</keysym
></para
></entry>
<entry
><para
>Праворуч</para
></entry>
</row>
<row
><entry
><para
><keysym
>Пробіл</keysym
></para
></entry>
<entry
><para
>Праворуч</para
></entry>
</row>
<row
><entry
><para
><keycap
>$</keycap
></para
></entry>
<entry
><para
>У кінець рядка</para
></entry>
</row>
<row
><entry
><para
><keycap
>End</keycap
></para
></entry>
<entry
><para
>У кінець рядка</para
></entry>
</row>
<row
><entry
><para
><keycap
>0</keycap
></para
></entry>
<entry
><para
>До першого символу рядка (позиція 0)</para
></entry>
</row>
<row
><entry
><para
><keycap
>Home</keycap
></para
></entry>
<entry
><para
>До першого символу рядка</para
></entry>
</row>
<row
><entry
><para
><keycap
>^</keycap
></para
></entry>
<entry
><para
>До першого непорожнього символу рядка</para
></entry>
</row>
<row
><entry
><para
><keycap
>f</keycap
></para
></entry>
<entry
><para
>З додаванням символу, до якого слід перейти праворуч від курсора</para
></entry>
</row>
<row
><entry
><para
><keycap
>F</keycap
></para
></entry>
<entry
><para
>З додаванням символу, до якого слід перейти ліворуч від курсора</para
></entry>
</row>
<row
><entry
><para
><keycap
>t</keycap
></para
></entry>
<entry
><para
>З додаванням символу, до якого слід перейти праворуч від курсора, з розташуванням курсора перед цим символом</para
></entry>
</row>
<row
><entry
><para
><keycap
>T</keycap
></para
></entry>
<entry
><para
>З додаванням символу, до якого слід перейти ліворуч від курсора, з розташуванням курсора перед цим символом</para
></entry>
</row>
<row
><entry
><para
><keycap
>g</keycap
><keycap
>g</keycap
></para
></entry>
<entry
><para
>До першого рядка</para
></entry>
</row>
<row
><entry
><para
><keycap
>G</keycap
></para
></entry>
<entry
><para
>До останнього рядка</para
></entry>
</row>
<row
><entry
><para
><keycap
>w</keycap
></para
></entry>
<entry
><para
>До наступного слова</para
></entry>
</row>
<row
><entry
><para
><keycap
>W</keycap
></para
></entry>
<entry
><para
>До наступного слова, відокремленого пробілом</para
></entry>
</row>
<row
><entry
><para
><keycap
>b</keycap
></para
></entry>
<entry
><para
>До попереднього слова</para
></entry>
</row>
<row
><entry
><para
><keycap
>B</keycap
></para
></entry>
<entry
><para
>До попереднього слова, відокремленого пробілом</para
></entry>
</row>
<row
><entry
><para
><keycap
>e</keycap
></para
></entry>
<entry
><para
>До кінця слова</para
></entry>
</row>
<row
><entry
><para
><keycap
>E</keycap
></para
></entry>
<entry
><para
>До кінця слова, відокремленого пробілом</para
></entry>
</row>
<row
><entry
><para
><keycap
>g</keycap
><keycap
>e</keycap
></para
></entry>
<entry
><para
>До кінця попереднього слова</para
></entry>
</row>
<row
><entry
><para
><keycap
>g</keycap
><keycap
>E</keycap
></para
></entry>
<entry
><para
>До кінця попереднього слова, відокремленого пробілом</para
></entry>
</row>
<row
><entry
><para
><keycap
>|</keycap
></para
></entry>
<entry
><para
>З визначенням номера позиції у рядку для переходу</para
></entry>
</row>
<row
><entry
><para
><keycap
>%</keycap
></para
></entry>
<entry
><para
>З визначенням елемента для переходу</para
></entry>
</row>
<row
><entry
><para
><keycap
>`</keycap
></para
></entry>
<entry
><para
>До позначки</para
></entry>
</row>
<row
><entry
><para
><keycap
>‘</keycap
></para
></entry>
<entry
><para
>До першого непробільного символу рядка з позначкою</para
></entry>
</row>
<row
><entry
><para
><keycap
>[</keycap
><keycap
>[</keycap
></para
></entry>
<entry
><para
>До попередньої початкової дужки</para
></entry>
</row>
<row
><entry
><para
><keycap
>]</keycap
><keycap
>]</keycap
></para
></entry>
<entry
><para
>До наступної початкової дужки</para
></entry>
</row>
<row
><entry
><para
><keycap
>[</keycap
><keycap
>]</keycap
></para
></entry>
<entry
><para
>До попередньої завершальної дужки</para
></entry>
</row>
<row
><entry
><para
><keycap
>]</keycap
><keycap
>[</keycap
></para
></entry>
<entry
><para
>До наступної завершальної дужки</para
></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>

<sect2 id="vi-supported-text-objects">
<title
>Підтримувані текстові об’єкти</title>

<para
>Цими командами можна скористатися для позначення частин тексту документа.</para>

<informaltable>
<tgroup cols="2">
<!--thead>
<row>
<entry
><para
>Key</para
></entry>
<entry
><para
>Command</para
></entry>
</row>
</thead-->
<tbody>
<row
><entry
><para
><keycap
>i</keycap
><keycap
>w</keycap
></para
></entry>
<entry
><para
>Блок слова: слово з пробілами</para
></entry>
</row>
<row
><entry
><para
><keycap
>a</keycap
><keycap
>w</keycap
></para
></entry>
<entry
><para
>Слово: слово без пробілів</para
></entry>
</row>
<row
><entry
><para
><keycap
>i</keycap
><keycap
>"</keycap
></para
></entry>
<entry
><para
>Від попередніх подвійних лапок (<userinput
>"</userinput
>) до наступних подвійних лапок, разом з лапками</para
></entry>
</row>
<row
><entry
><para
><keycap
>a</keycap
><keycap
>”</keycap
></para
></entry>
<entry
><para
>Від попередніх подвійних лапок (<userinput
>"</userinput
>) до наступних подвійних лапок, без лапок</para
></entry>
</row>
<row
><entry
><para
><keycap
>i</keycap
><keycap
>'</keycap
></para
></entry>
<entry
><para
>Від попередніх одинарних лапок (<userinput
>"</userinput
>) до наступних одинарних лапок, разом з лапками</para
></entry>
</row>
<row
><entry
><para
><keycap
>a</keycap
><keycap
>'</keycap
></para
></entry>
<entry
><para
>Від попередніх одинарних лапок (<userinput
>"</userinput
>) до наступних одинарних лапок, без лапок</para
></entry>
</row>
<row
><entry
><para
><keycap
>i</keycap
><keycap
>(</keycap
></para
></entry>
<entry
><para
>Від попередньої початкової круглої дужки [<userinput
>(</userinput
>] до наступної завершальної круглої дужки [<userinput
>)</userinput
>], разом з дужками</para
></entry>
</row>
<row
><entry
><para
><keycap
>a</keycap
><keycap
>(</keycap
></para
></entry>
<entry
><para
>Від попередньої початкової круглої дужки [<userinput
>(</userinput
>] до наступної завершальної круглої дужки [<userinput
>)</userinput
>], без дужок</para
></entry>
</row>
<row
><entry
><para
><keycap
>i</keycap
><keycap
>[</keycap
></para
></entry>
<entry
><para
>Від попередньої початкової квадратної дужки (<userinput
>[</userinput
>) до наступної завершальної квадратної дужки (<userinput
>]</userinput
>), разом з дужками</para
></entry>
</row>
<row
><entry
><para
><keycap
>a</keycap
><keycap
>[</keycap
></para
></entry>
<entry
><para
>Від попередньої початкової квадратної дужки (<userinput
>[</userinput
>) до наступної завершальної квадратної дужки (<userinput
>]</userinput
>), без дужок</para
></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>

<sect2 id="vi-insert-mode-commands">
<title
>Підтримувані команди режиму вставлення</title>

<informaltable>
<tgroup cols="2">
<!--thead>
<row>
<entry
><para
>Key</para
></entry>
<entry
><para
>Command</para
></entry>
</row>
</thead-->
<tbody>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>d</keycap
></keycombo
></para
></entry>
<entry
><para
>Зменшити відступ</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>t</keycap
></keycombo
></para
></entry>
<entry
><para
>Збільшити відступ</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>e</keycap
></keycombo
></para
></entry>
<entry
><para
>Вставити знизу</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>y</keycap
></keycombo
></para
></entry>
<entry
><para
>Вилучити слово</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>w</keycap
></keycombo
></para
></entry>
<entry
><para
>Вилучити слово</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>Home</keycap
></keycombo
></para
></entry>
<entry
><para
>Перейти до першого символу документа</para
></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>

<sect2 id="vi-text-object">
<title
>Текстовий об’єкт, обмежений комами</title>

<para
>Цього об’єкта немає у Vim. За допомогою текстового об’єкта, обмеженого комами, просто змінювати списки параметрів у C-подібних мовах та інших списках, поділених комами. Таким текстовим об’єктом є фрагмент тексту між двома комами або між комою і дужкою. На нашій ілюстрації показано три діапазони текстових об’єктів, позначені червоним тлом.</para>

<screenshot id="screenshot-resources">
<screeninfo
>Приклад відокремлених комами об’єктів</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="comma-to.png" format="PNG"/></imageobject>
<textobject
><phrase
>Приклад відокремлених комами об’єктів</phrase
></textobject>
<caption
><para
>Відокремлені комами текстові об’єкти визначають діапазони даних. Якщо, наприклад, курсор перебуває у <replaceable
>arg2</replaceable
>, натискання клавіш <keycap
>c</keycap
><keycap
>i</keycap
>, (<quote
>змінити між комами</quote
>) вилучить <replaceable
>double arg2</replaceable
> і розташує курсор між двома комами у режимі вставлення. Це дуже зручний спосіб зміни параметрів функцій.</para
></caption>
</mediaobject>
</screenshot>

</sect2>

<sect2 id="vi-missing-features">
<title
>Нереалізовані можливості</title>

<para
>Як ми вже зазначали раніше, метою режиму VI &kate; не є 100% підтримка можливостей Vim, хоча деякі з корисних функцій все ж ще не реалізовано:</para>
<itemizedlist>
<listitem>
<para
>Візуальний режим прямокутного вибору, особливо можливість додавати текст перед або позаду візуально позначеного блоку.</para
></listitem>
<listitem>
<para
>Доступність команд ex у програмах, відмінних від самої &kate;.</para
></listitem>
<listitem>
<para
>Код пошуку потребує удосконалення, а команди <keycap
>*</keycap
> і <keycap
>#</keycap
> мають виконувати пошук за формальним виразом.</para
></listitem>
</itemizedlist>
</sect2>

</sect1>

</chapter>
