<!--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 >translation-team@basealt.ru</email ></address ></affiliation ><contrib >Перевод на русский язык</contrib ></othercredit > </authorgroup> </chapterinfo> <title >Режим ввода Vi</title> <sect1 id="vi-mode-sect1"> <title >Режим ввода Vi</title> <para >Задача режима ввода Vi состоит не в том, чтобы полностью заменить Vim, обеспечив поддержку всех возможностей Vim. Она заключается в том, чтобы в программах, которые используют текстовый редактор &kappname; в качестве встроенного, было возможно выполнять редактирование в <quote >стиле Vim</quote > и применять изученные приёмы работы с Vim.</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" >&Meta;&Ctrl;<keycap >V</keycap ></keycombo >, где &Meta; обычно представляет собой клавишу <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 >Вышеприведённое замечание не касается команд, в которых используется клавиша &Ctrl;. Эти команды возможно вводить независимо от состояния режима <keycap >Caps Lock</keycap > и без нажатия клавиши &Shift;. Тем не менее, для ввода некоторых команд требуется использовать &Ctrl;-комбинацию, за которой следует другая клавиша, регистр которой следует принимать во внимание. Например, чтобы ввести <quote ><keycombo action="simul" >&Ctrl;<keycap >W</keycap ></keycombo >, <userinput >h</userinput ></quote > (переключиться на левую створку в разделённой области просмотра), убедитесь, что режим <keycap >Caps Lock</keycap > отключён, используйте комбинацию клавиш <keycombo action="simul" >&Ctrl;<keycap >W</keycap ></keycombo >, затем отпустите эти клавиши и нажмите клавишу <keycap >H</keycap >.</para> </note> <sect2 id="vi-incompatibilities"> <title >Расхождения с Vim</title> <para >C 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 >), следовательно, возврат действия должен быть доступен в <quote >обычном</quote > режиме нажатия комбинаций клавиш. Кроме того, поведение команды <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, но и в <quote >обычном</quote > режиме ввода &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 >Поведение команды <userinput >Y</userinput > в режиме Vi на самом деле является внутренней ошибкой. Для обеих команд, изменения и удаления, <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 > копирует данные до конца строки. Такое поведение описывается как <quote >более логичное</quote > в <ulink url="http://vimdoc.sourceforge.net/htmldoc/change.html#Y" >документации</ulink > Vim. </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 на соответствующем канале в &irc; (#vim на Libera Chat).</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 https://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 >&Ins;</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 >∇</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 >С определением позиции для <quote >копирования</quote ></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 >>></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 ><keycap >Влево</keycap ></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 ><keycap >Вправо</keycap ></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 ><keycap >Вверх</keycap ></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 ><keycap >Вниз</keycap ></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 ><keycap >Влево</keycap ></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 ><keycap >Вниз</keycap ></para ></entry> <entry ><para >Вниз</para ></entry> </row> <row ><entry ><para ><userinput >k</userinput ></para ></entry> <entry ><para >Вверх</para ></entry> </row> <row ><entry ><para ><keycap >Вверх</keycap ></para ></entry> <entry ><para >Вверх</para ></entry> </row> <row ><entry ><para ><userinput >l</userinput ></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 ><userinput >$</userinput ></para ></entry> <entry ><para >Конец строки</para ></entry> </row> <row ><entry ><para >&End;</para ></entry> <entry ><para >Конец строки</para ></entry> </row> <row ><entry ><para ><userinput >0</userinput ></para ></entry> <entry ><para >Первый символ в строке (позиция 0)</para ></entry> </row> <row ><entry ><para >&Home;</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<</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 >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;&Home;</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 >, (<quote >изменить между запятыми</quote >) текст <replaceable >double arg2</replaceable > будет удалён, а курсор — помещён между двумя запятыми в режиме вставки. Это очень удобный способ изменения параметров функции.</para ></caption> </mediaobject> </screenshot> </sect2> <sect2 id="vi-missing-features"> <title >Нереализованные возможности</title> <para >Как было отмечено выше, задачей режима Vi &kappname; не является стопроцентная поддержка возможностей Vim.</para> </sect2> </sect1> </chapter>
Generated by dwww version 1.15 on Thu Jun 27 09:18:26 CEST 2024.