<!--pulled in by kwrite too-->
<chapter id="vi-input-mode-chapter">
<chapterinfo>
<authorgroup
><author
>&Erlend.Hamberg; &Erlend.Hamberg.mail; </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, — у програмах, які використовують текстовий редактор &kappname; для вбудованих режимів редагування.</para>

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

<para
>Увімкнути режим VI для всіх нових панелей редагування можна за допомогою пункту меню <menuchoice
><guimenu
>Параметри</guimenu
><guimenuitem
>Налаштувати &kappname;...</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>

<note>
<para
>На відміну від більшості клавіатурних скорочень &kde;, багато клавіатурних команд режиму Vi є залежними від регістру символів. Це означає, що команди <userinput
>y</userinput
> і <userinput
>Y</userinput
> мають зовсім різне призначення. Щоб ввести команду <userinput
>y</userinput
> (копіювати), переконайтеся, що режим <keysym
>Caps Lock</keysym
> (літер верхнього регістру) вимкнено і натисніть клавішу <keycap
>Y</keycap
>. Щоб ввести команду <userinput
>Y</userinput
> (копіювати до кінця рядка), скористайтеся комбінацією клавіш <keycombo action="simul"
>&Shift;<keycap
>Y</keycap
></keycombo
>.</para>

<para
>Висловлене вище зауваження не стосується команд, у яких використовується клавіша. Ці команди можна ввести у будь-якому з режимів <keycap
>Caps Lock</keycap
> без натискання &Shift;, але у частині команд використовується комбінація з &Ctrl;, після якої слід натиснути іншу клавішу, регістр якої слід брати до уваги. Наприклад, щоб ввести команду «<keycombo action="simul"
>&Ctrl;<keycap
>W</keycap
></keycombo
>, <userinput
>h</userinput
>» (перемкнутися на праву панель у розділеному перегляді), переконайтеся що режим літер верхнього регістру вимкнено, натисніть комбінацію клавіш <keycombo action="simul"
>&Ctrl;<keycap
>W</keycap
></keycombo
>, відпустіть клавіш, а потім натисніть клавішу <keycap
>H</keycap
>.</para>
</note>

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

<para
>З Vim несумісні лише декілька можливостей режиму VI &kappname;, якщо не брати до уваги багатьох речей, які просто не реалізовано. Нижче наведено список цих можливостей з поясненнями причин несумісності.</para>
<itemizedlist>
<listitem>
<para
>&kappname;: <userinput
>U</userinput
> і <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 &kappname;, є те, що клавіатурне скорочення <keycombo action="simul"
>&Ctrl;<keycap
>R</keycap
></keycombo
> типово зайнято у &kappname; заміною (пошук з заміною). Типово режим VI не змінює клавіатурні скорочення &kappname; (ви можете зробити це вручну за допомогою сторінки <menuchoice
><guimenu
>Параметри</guimenu
><guimenuitem
>Налаштувати &kappname;...</guimenuitem
> <guimenu
>Редагування</guimenu
><guimenuitem
>Режим вводу Vi</guimenuitem
></menuchoice
>), тому дія з повернення редагування має бути доступна у «звичайному» режимі натискання комбінацій клавіш. Окрім того, дія команди <userinput
>U</userinput
> у Vim не дуже добре збігається з внутрішньою системою скасування &kappname;, отже її підтримка є доволі складним завданням.</para>
</listitem>
<listitem>
<para
>&kappname;: <userinput
><command
>print</command
></userinput
> відкриває діалогове вікно <guilabel
>Друк</guilabel
>.</para>
<para
>Vim: <userinput
><command
>print</command
></userinput
> друкує рядки вказаного діапазону, подібно до свого дідуся, ed.</para>
<para
>Команди на зразок <userinput
><command
>:print</command
></userinput
> доступні не лише у режимі VI, але і користувачам «звичайних» режимів &kappname;. Тому <userinput
><command
>:print</command
></userinput
> відкриває діалогове вікно друку відповідно до принципів однорідності, замість імітації поведінки Vim.</para>
</listitem>
<listitem>
<para
>&kappname;: <userinput
>Y</userinput
> копіює дані до кінця рядка.</para>
<para
>Vim: <userinput
>Y</userinput
> копіює весь рядок, подібно до команди <userinput
>y</userinput
><userinput
>y</userinput
>.</para>
<para
>Поведінка VI для команди <userinput
>Y</userinput
> насправді є вадою. Для обох команд, зміни і вилучення, команди <userinput
>c</userinput
><userinput
>c</userinput
>/ <userinput
>d</userinput
><userinput
>d</userinput
> виконують дію на поточному рядку, а <userinput
>C</userinput
>/<userinput
>D</userinput
> виконує дію над даними від позиції курсора до кінця рядка. Але обидві команди, <userinput
>y</userinput
><userinput
>y</userinput
> і <userinput
>Y</userinput
>, копіюють поточний рядок. У режимі VI &kappname; <userinput
>Y</userinput
> копіює дані до кінця рядка. Така поведінка описана як «логічніша» у <ulink url="http://vimdoc.sourceforge.net/htmldoc/change.html#Y"
>документації до Vim</ulink
>. </para>
</listitem>
<listitem>
<para
>&kappname;: <userinput
>O</userinput
> і <userinput
>o</userinput
> відкривають [<replaceable
>кількість</replaceable
>] нових рядків і переводять програму у режим вставлення.</para>
<para
>Vim: <userinput
>O</userinput
> і <userinput
>o</userinput
> відкривають нових рядок і вставляють текст [<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
> надає вам змогу позначати текст у документі. У цьому режимі можна користуватися більшістю команд звичайного режиму. Ви можете перевести команду у цей режим введенням літери <userinput
>v</userinput
> для позначення символів або <userinput
>V</userinput
> для позначення рядків. </para
></listitem>
<listitem>
<para
><emphasis
>Режим вставлення</emphasis
> надає вам змогу редагувати документ безпосередньо. Ви можете перевести програму у цей режим натисканням клавіші <userinput
>i</userinput
> або за допомогою одної з декількох інших команд, наведених нижче. </para
></listitem>
<listitem>
<para
><emphasis
>Режим команд</emphasis
> відкриває панель командного рядка &kappname;. За допомогою цієї панелі ви зможете виконувати значну частину команд, доступних у реалізаціях Vi, а також деякі специфічні для &kappname; команди. Докладніше про ці команди можна дізнатися з розділу <xref linkend="advanced-editing-tools-commandline"/>. Користуватися режимом команд просто: натисніть клавішу <keycap
>:</keycap
>, вкажіть команду і натисніть клавішу &Enter;.</para>
</listitem>
</itemizedlist>
<!-- add a picture like http://de.wikipedia.org/wiki/Vi#Arbeitsmodi here? -->
</sect2>

<sect2 id="vi-integration">
<title
>Інтеграція з командами Kate</title>
<itemizedlist>

<listitem>
<para
>Програма автоматично перемикатиметься на візуальний режим, якщо фрагмент тексту буде позначено за допомогою миші. Також перемикання відбуватиметься у разі використання функцій Kate, які позначають фрагменти тексту, зокрема «Вибрати все» (вибір або за допомогою меню, або за допомогою комбінації клавіш <keycombo action="simul"
>&Ctrl;<keycap
>A</keycap
> </keycombo
>.)</para>
</listitem>

<listitem>
<para
>Передбачено підтримку позначок Vi та <link linkend="kate-part-bookmarks"
>закладок Kate</link
>. У разі створення позначки у режимі Vi буде також створено відповідну закладку Kate, яку буде показано у меню <guimenu
>Закладки</guimenu
>. І навпаки, якщо буде створено закладку Kate, програма також створить відповідну позначку Vi у нульовій позиції рядка.</para>
</listitem>

</itemizedlist>
</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
><userinput
>a</userinput
></para
></entry>
<entry
><para
>Перейти у режим вставлення, додавати символи після курсора</para
></entry>
</row>
<row
><entry
><para
><userinput
>A</userinput
></para
></entry>
<entry
><para
>Перейти у режим вставлення, додавати символи після рядка</para
></entry>
</row>
<row
><entry
><para
><userinput
>i</userinput
></para
></entry>
<entry
><para
>Перейти у режим вставлення, додавати символи перед курсором</para
></entry>
</row>
<row
><entry
><para
><keycap
>Ins</keycap
></para
></entry>
<entry
><para
>Перейти у режим вставлення, додавати символи перед курсором</para
></entry>
</row>
<row
><entry
><para
><userinput
>I</userinput
></para
></entry>
<entry
><para
>Перейти у режим вставлення, вставляти до першого непорожнього символу у рядку</para
></entry>
</row>
<row
><entry
><para
><userinput
>gi</userinput
></para
></entry>
<entry
><para
>Перейти у режим вставлення, вставити перед місцем, у якому було здійснено останній вихід з режиму вставлення</para
></entry>
</row>
<row
><entry
><para
><userinput
>v</userinput
></para
></entry>
<entry
><para
>Перейти у візуальний режим; позначати символи</para
></entry>
</row>
<row
><entry
><para
><userinput
>V</userinput
></para
></entry>
<entry
><para
>Перейти у візуальний режим; позначати рядки</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>v</keycap
></keycombo
></para
></entry>
<entry
><para
>Перейти у візуальний режим; позначати блоки</para
></entry>
</row>
<row
><entry
><para
><userinput
>gb</userinput
></para
></entry>
<entry
><para
>Перейти у візуальний режим; повторно позначити останній позначений фрагмент</para
></entry>
</row>
<row
><entry
><para
><userinput
>o</userinput
></para
></entry>
<entry
><para
>Додати новий рядок під поточним</para
></entry>
</row>
<row
><entry
><para
><userinput
>O</userinput
></para
></entry>
<entry
><para
>Додати новий рядок перед поточним</para
></entry>
</row>
<row
><entry
><para
><userinput
>J</userinput
></para
></entry>
<entry
><para
>Об'єднати рядки</para
></entry>
</row>
<row
><entry
><para
><userinput
>c</userinput
></para
></entry>
<entry
><para
>Змінити: з наступним визначенням позиції для вилучення і переходом у режим вставлення</para
></entry>
</row>
<row
><entry
><para
><userinput
>C</userinput
></para
></entry>
<entry
><para
>Змінити до кінця рядка: вилучити текст до кінця рядка і увійти до режиму вставлення</para
></entry>
</row>
<row
><entry
><para
><userinput
>cc</userinput
></para
></entry>
<entry
><para
>Змінити рядок: вилучити рядок і перейти у режим вставлення</para
></entry>
</row>
<row
><entry
><para
><userinput
>s</userinput
></para
></entry>
<entry
><para
>Замінити символ</para
></entry>
</row>
<row
><entry
><para
><userinput
>S</userinput
></para
></entry>
<entry
><para
>Замінити рядок</para
></entry>
</row>
<row
><entry
><para
><userinput
>dd</userinput
></para
></entry>
<entry
><para
>Вилучити рядок</para
></entry>
</row>
<row
><entry
><para
><userinput
>d</userinput
></para
></entry>
<entry
><para
>З наступним визначенням позиції для вилучення</para
></entry>
</row>
<row
><entry
><para
><userinput
>D</userinput
></para
></entry>
<entry
><para
>Вилучити до кінця рядка</para
></entry>
</row>
<row
><entry
><para
><userinput
>x</userinput
></para
></entry>
<entry
><para
>Вилучити символ праворуч від курсора</para
></entry>
</row>
<row
><entry
><para
><keycap
>Del</keycap
></para
></entry>
<entry
><para
>Вилучити символ праворуч від курсора</para
></entry>
</row>
<row
><entry
><para
><userinput
>X</userinput
></para
></entry>
<entry
><para
>Вилучити символі ліворуч від курсора</para
></entry>
</row>
<row
><entry
><para
><userinput
>gu</userinput
></para
></entry>
<entry
><para
>З визначенням позиції для встановлення нижнього регістру</para
></entry>
</row>
<row
><entry
><para
><userinput
>guu</userinput
></para
></entry>
<entry
><para
>Перевести всі символи поточного рядка у нижній регістр</para
></entry>
</row>
<row
><entry
><para
><userinput
>gU</userinput
></para
></entry>
<entry
><para
>З визначенням позиції для встановлення верхнього регістру</para
></entry>
</row>
<row
><entry
><para
><userinput
>gUU</userinput
></para
></entry>
<entry
><para
>Перетворити символи поточного рядка на символи у верхньому регістрі</para
></entry>
</row>
<row
><entry
><para
><userinput
>y</userinput
></para
></entry>
<entry
><para
>З визначенням позиції для копіювання</para
></entry>
</row>
<row
><entry
><para
><userinput
>yy</userinput
></para
></entry>
<entry
><para
>Копіювати рядок</para
></entry>
</row>
<row
><entry
><para
><userinput
>Y</userinput
></para
></entry>
<entry
><para
>Копіювати рядок</para
></entry>
</row>
<row
><entry
><para
><userinput
>p</userinput
></para
></entry>
<entry
><para
>Вставити після курсора</para
></entry>
</row>
<row
><entry
><para
><userinput
>P</userinput
></para
></entry>
<entry
><para
>Вставити перед курсором</para
></entry>
</row>
<row
><entry
><para
><userinput
>]p</userinput
></para
></entry>
<entry
><para
>Вставити після курсора з відступом</para
></entry>
</row>
<row
><entry
><para
><userinput
>[p</userinput
></para
></entry>
<entry
><para
>Вставити перед курсором з відступом</para
></entry>
</row>
<row
><entry
><para
><userinput
>r</userinput
></para
></entry>
<entry
><para
>З визначенням символу, який слід замінити символ за курсором</para
></entry>
</row>
<row
><entry
><para
><userinput
>R</userinput
></para
></entry>
<entry
><para
>Увійти до режиму заміни</para
></entry>
</row>
<row
><entry
><para
><userinput
>:</userinput
></para
></entry>
<entry
><para
>Увійти у командний режим</para
></entry>
</row>
<row
><entry
><para
><userinput
>/</userinput
></para
></entry>
<entry
><para
>Шукати</para
></entry>
</row>
<row
><entry
><para
><userinput
>u</userinput
></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
><userinput
>U</userinput
></para
></entry>
<entry
><para
>Повторити</para
></entry>
</row>
<row
><entry
><para
><userinput
>m</userinput
></para
></entry>
<entry
><para
>Встановити позначку (може бути використано для наступних пересувань текстом)</para
></entry>
</row>
<row
><entry
><para
><userinput
>n</userinput
></para
></entry>
<entry
><para
>Знайти наступне</para
></entry>
</row>
<row
><entry
><para
><userinput
>N</userinput
></para
></entry>
<entry
><para
>Знайти попереднє</para
></entry>
</row>
<row
><entry
><para
><userinput
>&gt;&gt;</userinput
></para
></entry>
<entry
><para
>Збільшити відступ рядка</para
></entry>
</row>
<row
><entry
><para
><userinput
>&lt;&lt;</userinput
></para
></entry>
<entry
><para
>Зменшити відступ рядка</para
></entry>
</row>
<row
><entry
><para
><userinput
>&gt;</userinput
></para
></entry>
<entry
><para
>Збільшити відступ рядків</para
></entry>
</row>
<row
><entry
><para
><userinput
>&lt;</userinput
></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
><userinput
>ga</userinput
></para
></entry>
<entry
><para
>Вивести значення ASCII для символу</para
></entry>
</row>
<row
><entry
><para
><userinput
>.</userinput
></para
></entry>
<entry
><para
>Повторити останню зміну</para
></entry>
</row>
<row
><entry
><para
><userinput
>==</userinput
></para
></entry>
<entry
><para
>Команда вирівнювання рядка</para
></entry>
</row>
<row
><entry
><para
><userinput
>=</userinput
></para
></entry>
<entry
><para
>Команда вирівнювання рядків</para
></entry>
</row>
<row
><entry
><para
><userinput
>~</userinput
></para
></entry>
<entry
><para
>Змінити регістр поточного символу</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>S</keycap
></keycombo
></para
></entry>
<entry
><para
>Розділити перегляд горизонтально</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>V</keycap
></keycombo
></para
></entry>
<entry
><para
>Розділити перегляд вертикально</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl; <keycap
>W</keycap
></keycombo
>, <userinput
>w</userinput
></para
></entry>
<entry
><para
>Циклічний перехід до наступної панелі поділу</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl; <keycap
>W</keycap
></keycombo
>, <userinput
>h</userinput
></para>
<para
><keycombo action="seq"
><keycombo action="simul"
>&Ctrl; <keycap
>W</keycap
></keycombo
><keysym
>←</keysym
></keycombo
></para
></entry>
<entry
><para
>Перейти до лівої панелі поділу</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl; <keycap
>W</keycap
></keycombo
>, <userinput
>l</userinput
></para>
<para
><keycombo action="seq"
><keycombo action="simul"
>&Ctrl; <keycap
>W</keycap
></keycombo
><keysym
>→</keysym
></keycombo
></para
></entry>
<entry
><para
>Перейти до правої панелі поділу</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl; <keycap
>W</keycap
></keycombo
>, <userinput
>k</userinput
></para>
<para
><keycombo action="seq"
><keycombo action="simul"
>&Ctrl; <keycap
>W</keycap
></keycombo
><keysym
>↑</keysym
></keycombo
></para
></entry>
<entry
><para
>Перейти до верхньої панелі поділу</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl; <keycap
>W</keycap
></keycombo
>, <userinput
>j</userinput
></para>
<para
><keycombo action="seq"
><keycombo action="simul"
>&Ctrl; <keycap
>W</keycap
></keycombo
><keysym
>↓</keysym
></keycombo
></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
><userinput
>h</userinput
></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
><userinput
>j</userinput
></para
></entry>
<entry
><para
>Вниз</para
></entry>
</row>
<row
><entry
><para
><keysym
>↓</keysym
></para
></entry>
<entry
><para
>Вниз</para
></entry>
</row>
<row
><entry
><para
><userinput
>k</userinput
></para
></entry>
<entry
><para
>Вгору</para
></entry>
</row>
<row
><entry
><para
><keysym
>↑</keysym
></para
></entry>
<entry
><para
>Вгору</para
></entry>
</row>
<row
><entry
><para
><userinput
>l</userinput
></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
><userinput
>$</userinput
></para
></entry>
<entry
><para
>У кінець рядка</para
></entry>
</row>
<row
><entry
><para
><keycap
>End</keycap
></para
></entry>
<entry
><para
>У кінець рядка</para
></entry>
</row>
<row
><entry
><para
><userinput
>0</userinput
></para
></entry>
<entry
><para
>До першого символу рядка (позиція 0)</para
></entry>
</row>
<row
><entry
><para
><keycap
>Home</keycap
></para
></entry>
<entry
><para
>До першого символу рядка</para
></entry>
</row>
<row
><entry
><para
><userinput
>^</userinput
></para
></entry>
<entry
><para
>До першого непорожнього символу рядка</para
></entry>
</row>
<row
><entry
><para
><userinput
>f</userinput
></para
></entry>
<entry
><para
>З додаванням символу, до якого слід перейти праворуч від курсора</para
></entry>
</row>
<row
><entry
><para
><userinput
>F</userinput
></para
></entry>
<entry
><para
>З додаванням символу, до якого слід перейти ліворуч від курсора</para
></entry>
</row>
<row
><entry
><para
><userinput
>t</userinput
></para
></entry>
<entry
><para
>З додаванням символу, до якого слід перейти праворуч від курсора, з розташуванням курсора перед цим символом</para
></entry>
</row>
<row
><entry
><para
><userinput
>T</userinput
></para
></entry>
<entry
><para
>З додаванням символу, до якого слід перейти ліворуч від курсора, з розташуванням курсора перед цим символом</para
></entry>
</row>
<row
><entry
><para
><userinput
>gg</userinput
></para
></entry>
<entry
><para
>До першого рядка</para
></entry>
</row>
<row
><entry
><para
><userinput
>G</userinput
></para
></entry>
<entry
><para
>До останнього рядка</para
></entry>
</row>
<row
><entry
><para
><userinput
>w</userinput
></para
></entry>
<entry
><para
>До наступного слова</para
></entry>
</row>
<row
><entry
><para
><userinput
>W</userinput
></para
></entry>
<entry
><para
>До наступного слова, відокремленого пробілом</para
></entry>
</row>
<row
><entry
><para
><userinput
>b</userinput
></para
></entry>
<entry
><para
>До попереднього слова</para
></entry>
</row>
<row
><entry
><para
><userinput
>B</userinput
></para
></entry>
<entry
><para
>До попереднього слова, відокремленого пробілом</para
></entry>
</row>
<row
><entry
><para
><userinput
>e</userinput
></para
></entry>
<entry
><para
>До кінця слова</para
></entry>
</row>
<row
><entry
><para
><userinput
>E</userinput
></para
></entry>
<entry
><para
>До кінця слова, відокремленого пробілом</para
></entry>
</row>
<row
><entry
><para
><userinput
>ge</userinput
></para
></entry>
<entry
><para
>До кінця попереднього слова</para
></entry>
</row>
<row
><entry
><para
><userinput
>gE</userinput
></para
></entry>
<entry
><para
>До кінця попереднього слова, відокремленого пробілом</para
></entry>
</row>
<row
><entry
><para
><userinput
>|</userinput
></para
></entry>
<entry
><para
>З визначенням номера позиції у рядку для переходу</para
></entry>
</row>
<row
><entry
><para
><userinput
>%</userinput
></para
></entry>
<entry
><para
>З визначенням елемента для переходу</para
></entry>
</row>
<row
><entry
><para
><userinput
>`</userinput
></para
></entry>
<entry
><para
>До позначки</para
></entry>
</row>
<row
><entry
><para
><userinput
>‘</userinput
></para
></entry>
<entry
><para
>До першого непробільного символу рядка з позначкою</para
></entry>
</row>
<row
><entry
><para
><userinput
>[[</userinput
></para
></entry>
<entry
><para
>До попередньої початкової дужки</para
></entry>
</row>
<row
><entry
><para
><userinput
>]]</userinput
></para
></entry>
<entry
><para
>До наступної початкової дужки</para
></entry>
</row>
<row
><entry
><para
><userinput
>[]</userinput
></para
></entry>
<entry
><para
>До попередньої завершальної дужки</para
></entry>
</row>
<row
><entry
><para
><userinput
>][</userinput
></para
></entry>
<entry
><para
>До наступної завершальної дужки</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>I</keycap
></keycombo
></para
></entry>
<entry
><para
>Перейти вперед до наступного місця</para
></entry
></row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>O</keycap
></keycombo
></para
></entry>
<entry
><para
>Повернутися до попереднього місця</para
></entry
></row>
<row
><entry
><para
><userinput
>H</userinput
></para
></entry>
<entry
>Перейти до першого рядка на екрані</entry
></row>
<row
><entry
><para
><userinput
>M</userinput
></para
></entry>
<entry
>Перейти до рядка посередині екрана</entry
></row>
<row
><entry
><para
><userinput
>L</userinput
></para
></entry>
<entry
>Перейти до останнього рядка на екрані</entry
></row>
<row
><entry
><para
><userinput
>%<replaceable
>значення у відсотках</replaceable
></userinput
></para
></entry>
<entry
><para
>Перейти до вказаної у відсотках позиції документа</para
></entry
></row>
<row
><entry
><para
><userinput
>gk</userinput
></para
></entry>
<entry
><para
>Перейти на рядок вгору візуально (у разі використання динамічного перенесення рядків)</para
></entry
></row>
<row
><entry
><para
><userinput
>gj</userinput
></para
></entry>
<entry
><para
>Перейти на рядок вниз візуально (у разі використання динамічного перенесення рядків)</para
></entry
></row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>←</keycap
></keycombo
></para
></entry>
<entry
><para
>Перейти на слово ліворуч</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>→</keycap
></keycombo
></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
><userinput
>iw</userinput
></para
></entry>
<entry
><para
>Блок слова: слово з пробілами</para
></entry>
</row>
<row
><entry
><para
><userinput
>aw</userinput
></para
></entry>
<entry
><para
>Слово: слово без пробілів</para
></entry>
</row>
<row
><entry
><para
><userinput
>i"</userinput
></para
></entry>
<entry
><para
>Від попередніх подвійних лапок (<userinput
>"</userinput
>) до наступних подвійних лапок, разом з лапками</para
></entry>
</row>
<row
><entry
><para
><userinput
>a”</userinput
></para
></entry>
<entry
><para
>Від попередніх подвійних лапок (<userinput
>"</userinput
>) до наступних подвійних лапок, без лапок</para
></entry>
</row>
<row
><entry
><para
><userinput
>i'</userinput
></para
></entry>
<entry
><para
>Від попередніх одинарних лапок (<userinput
>"</userinput
>) до наступних одинарних лапок, разом з лапками</para
></entry>
</row>
<row
><entry
><para
><userinput
>a'</userinput
></para
></entry>
<entry
><para
>Від попередніх одинарних лапок (<userinput
>"</userinput
>) до наступних одинарних лапок, без лапок</para
></entry>
</row>
<row
><entry
><para
><userinput
>i(</userinput
></para
></entry>
<entry
><para
>Від попередньої початкової круглої дужки [<userinput
>(</userinput
>] до наступної завершальної круглої дужки [<userinput
>)</userinput
>], разом з дужками</para
></entry>
</row>
<row
><entry
><para
><userinput
>a(</userinput
></para
></entry>
<entry
><para
>Від попередньої початкової круглої дужки [<userinput
>(</userinput
>] до наступної завершальної круглої дужки [<userinput
>)</userinput
>], без дужок</para
></entry>
</row>
<row
><entry
><para
><userinput
>i[</userinput
></para
></entry>
<entry
><para
>Від попередньої початкової квадратної дужки (<userinput
>[</userinput
>) до наступної завершальної квадратної дужки (<userinput
>]</userinput
>), разом з дужками</para
></entry>
</row>
<row
><entry
><para
><userinput
>a[</userinput
></para
></entry>
<entry
><para
>Від попередньої початкової квадратної дужки (<userinput
>[</userinput
>) до наступної завершальної квадратної дужки (<userinput
>]</userinput
>), без дужок</para
></entry>
</row>
<row
><entry
><para
><userinput
>i{</userinput
></para
></entry>
<entry
><para
>Від попередньої початкової фігурної дужки (<userinput
>{</userinput
>) до наступної завершальної фігурної дужки (<userinput
>}</userinput
>), разом з дужками</para
></entry>
</row>
<row
><entry
><para
><userinput
>a{</userinput
></para
></entry>
<entry
><para
>Від попередньої початкової фігурної дужки (<userinput
>{</userinput
>) до наступної завершальної фігурної дужки (<userinput
>}</userinput
>), без дужок</para
></entry>
</row>
<row
><entry
><para
><userinput
>i&lt;</userinput
></para
></entry>
<entry
><para
>Від попередньої початкової кутової дужки (<userinput
>&lt;</userinput
>) до наступної завершальної кутової дужки (<userinput
>&gt;</userinput
>), разом з дужками</para
></entry>
</row>
<row
><entry
><para
><userinput
>a&lt;</userinput
></para
></entry>
<entry
><para
>Від попередньої початкової кутової дужки (<userinput
>&lt;</userinput
>) до наступної завершальної кутової дужки (<userinput
>&gt;</userinput
>), без дужок</para
></entry>
</row>
<row
><entry
><para
><userinput
>i`</userinput
></para
></entry>
<entry
><para
>Від попередніх зворотних лапок (<userinput
>`</userinput
>) до наступних зворотних лапок, разом з лапками</para
></entry>
</row>
<row
><entry
><para
><userinput
>a`</userinput
></para
></entry>
<entry
><para
>Від попередніх зворотних лапок (<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
>U</keycap
></keycombo
></para
></entry>
<entry
><para
>Вилучити рядок</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>J</keycap
></keycombo
></para
></entry>
<entry
><para
>Новий рядок</para
></entry>
</row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>H</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>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>R</keycap
></keycombo
> <userinput
>n</userinput
></para
></entry>
<entry
>Вставити вміст регістра <literal
>n</literal
></entry
></row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>O</keycap
></keycombo
>, <replaceable
>команда</replaceable
></para
></entry>
<entry
><para
>Увійти до звичайного режиму лише для однієї команди</para
></entry
></row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>A</keycap
></keycombo
></para
></entry>
<entry
><para
>Збільшити поточне позначене число</para
></entry
></row>
<row
><entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>X</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
>, натискання клавіш <userinput
>ci</userinput
>, («змінити між комами») вилучить <replaceable
>double arg2</replaceable
> і розташує курсор між двома комами у режимі вставлення. Це дуже зручний спосіб зміни параметрів функцій.</para
></caption>
</mediaobject>
</screenshot>

</sect2>

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

<para
>Як ми вже зазначали раніше, метою режиму VI &kappname; не є 100% підтримка можливостей Vim.</para>
</sect2>

</sect1>

</chapter>
