<!--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 ><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 ><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 ><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 >g</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 >g</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 >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 >>></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 >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> </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<</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 >) до наступних зворотних лапок, разом з лапками</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 >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> <itemizedlist> <listitem> <para >Візуальний режим прямокутного вибору, особливо можливість додавати текст перед або позаду візуально позначеного блоку.</para ></listitem> <listitem> <para >Доступність команд ex у програмах, відмінних від самої &kappname;.</para ></listitem> <listitem> <para >Код пошуку потребує удосконалення, а команди <userinput >*</userinput > і <userinput >#</userinput > мають виконувати пошук за формальним виразом.</para ></listitem> </itemizedlist> </sect2> </sect1> </chapter>