Содержание
Задача режима ввода Vi состоит не в том, чтобы полностью заменить Vim, обеспечив поддержку всех возможностей Vim. Она заключается в том, чтобы в программах, которые используют текстовый редактор KatePart в качестве встроенного, было возможно выполнять редактирование в «стиле Vim» и применять изученные приёмы работы с Vim.
Режим ввода Vi прекрасно интегрируется в сторонние программы и отклоняется от поведения Vim там, где это имеет смысл. Например, команда :w в режиме Vi KatePart позволяет открыть диалог сохранения.
Включить режим ввода Vi для всех новых областей просмотра возможно с помощью пункта меню → + → . На этой вкладке возможно установить параметры режима ввода Vi, а также определить и отредактировать привязки клавиш. Также режим ввода Vi возможно включать или отключать с помощью пункта в меню . (Комбинация клавиш по умолчанию: Meta+Ctrl+V, где Meta обычно представляет собой клавишу Windows.)
Примечание
В отличие от большинства комбинаций клавиш KDE, многие клавиатурные команды режима Vi зависят от регистра символов. Это означает, что команды y и Y имеют совершенно разное назначение. Чтобы ввести команду y (копировать), убедитесь, что режим Caps Lock отключён, и нажмите клавишу Y. Чтобы ввести команду Y (копировать до конца строки), воспользуйтесь комбинацией клавиш Shift+Y.
Вышеприведённое замечание не касается команд, в которых используется клавиша Ctrl. Эти команды возможно вводить независимо от состояния режима Caps Lock и без нажатия клавиши Shift. Тем не менее, для ввода некоторых команд требуется использовать Ctrl-комбинацию, за которой следует другая клавиша, регистр которой следует принимать во внимание. Например, чтобы ввести «Ctrl+W, h» (переключиться на левую створку в разделённой области просмотра), убедитесь, что режим Caps Lock отключён, используйте комбинацию клавиш Ctrl+W, затем отпустите эти клавиши и нажмите клавишу H.
C Vim несовместимы лишь несколько функций режима ввода Vi KatePart (не принимая во внимание различные функции, которые просто не реализованы). Их перечень (с указанием соответствующих причин несовместимости) приводится далее.
KatePart:
Uи Ctrl+R — повторное выполнение отменённой команды.Vim: Ctrl+R — обычное повторение действия, U — отмена всех последних изменений в одной строке.
Клавиша U привязана к повторению отменённого действия в режиме Vi KatePart, потому что комбинация клавиш Ctrl+R по умолчанию используется для функции замены KatePart (поиск и замена). По умолчанию режим Vi не переопределяет комбинации клавиш KatePart (это возможно сделать вручную: → + → ), следовательно, возврат действия должен быть доступен в «обычном» режиме нажатия комбинаций клавиш. Кроме того, поведение команды
Uв Vim не очень хорошо совпадает с внутренней системой отмены KatePart, поэтому её поддержка была бы довольно сложной задачей.KatePart:
print— открытие диалога Печать.Vim:
print— печать строк указанного диапазона (как в ed).Такие команды, как
:print, доступны не только в режиме Vi, но и в «обычном» режиме ввода KatePart. Следовательно, при использовании команды:printбудет открыт диалог печати (соблюдается принцип однородности, а не имитируется поведение Vim).KatePart:
Y— копирование данных до конца строки.Vim:
Y— копирование всей строки, аналогичноyy.Поведение команды
Yв режиме Vi на самом деле является внутренней ошибкой. Для обеих команд, изменения и удаления,cc/ddвыполняет действие над текущей строкой, аC/Dвыполняет действие над данными от позиции курсора до конца строки. Но обе команды,yyиY, копируют текущую строку. В режиме Vi KatePartYкопирует данные до конца строки. Такое поведение описывается как «более логичное» в документации Vim.KatePart:
Oиo— открытие [количество] новых строк и переход в режим вставки.Vim:
Oиo— открытие новой строки и вставка текста [количество] раз при выходе из режима вставки.Так сделано в результате обобщения опыта многих людей, которые выражали удивление поведением Vim на соответствующем канале в IRC (#vim на Libera Chat).
В обычном режиме возможно вводить команды для навигации по документу или его редактирования. Этот режим используется по умолчанию. Чтобы вернуться в этот режим из любого другого, нажмите клавишу Esc.
Визуальный режим позволяет выделять цветом текст в документе. В этом режиме также возможно применять большинство команд обычного режима. Чтобы перейти в этот режим, нажмите клавишу
v(для выбора символов) илиV(для выбора строк).Режим вставки позволяет выполнять непосредственное редактирование документа. Чтобы перейти в этот режим, нажмите клавишу
iили введите одну из нескольких перечисленных далее команд.Режим команд позволяет вызвать командную строку KatePart для выполнения значительной части команд, доступных в реализациях Vi, а также некоторых специфичных для KatePart команд. Более подробные сведения об этих командах: «Командная строка компонента редактирования». Чтобы перейти в этот режим, нажмите клавишу :, введите команду и нажмите клавишу Enter.
Визуальный режим автоматически включается при выборе текста с помощью мыши. Переход в этот режим также выполняется при использовании команд выбора текста Kate, например, «Выделить все» (при выборе соответствующего пункта меню или нажатии комбинации клавиш Ctrl+A).
Предусмотрена поддержка отметок Vi и закладок Kate. Когда в режиме Vi создаётся отметка, также создаётся и соответствующая закладка Kate, доступная в меню . И наоборот: при создании закладки Kate создаётся соответствующая отметка Vi в нулевой позиции строки.
| Перейти в режим вставки, добавлять символы после курсора |
| Перейти в режим вставки, добавлять символы после строки |
| Перейти в режим вставки, добавлять символы перед курсором |
Ins | Перейти в режим вставки, добавлять символы перед курсором |
| Перейти в режим вставки, вставлять символы перед первым непустым символом строки |
| Перейти в режим вставки, вставлять символы перед местом, в котором был совершён последний выход из режима вставки |
| Перейти в визуальный режим, обозначить символы |
| Перейти в визуальный режим, обозначить строки |
Ctrl+v | Перейти в визуальный режим, обозначить блоки |
| Перейти в визуальный режим, повторно обозначить последний обозначенный фрагмент |
| Открыть новую строку под текущей |
| Открыть новую строку над текущей |
| Объединить строки |
| Изменить: с определением позиции для удаления и переходом в режим вставки |
| Изменить до конца строки: удалить текст до конца строки и перейти в режим вставки |
| Изменить строку: удалить строку и перейти в режим вставки |
| Заменить символ |
| Заменить строку |
| Удалить строку |
| С определением позиции для удаления |
| Удалить до конца строки |
| Удалить символ справа от курсора |
Del | Удалить символ справа от курсора |
| Удалить символ слева от курсора |
| С определением позиции для перевода в нижний регистр |
| Перевести текущую строку в нижний регистр |
| С определением позиции для перевода в верхний регистр |
| Перевести текущую строку в верхний регистр |
| С определением позиции для «копирования» |
| Копировать строку |
| Копировать строку |
| Вставить после курсора |
| Вставить перед курсором |
| Вставить после курсора с отступом |
| Вставить перед курсором с отступом |
| С определением символа, который должен заменить символ, следующий за курсором |
| Перейти в режим замены |
| Перейти в режим команд |
| Поиск |
| Отменить |
Ctrl+R | Повторить |
| Повторить |
| Установить отметку (возможно использовать для последующих определений позиции) |
| Найти следующее совпадение |
| Найти предыдущее совпадение |
| Увеличить отступ строки |
| Уменьшить отступ строки |
| Увеличить отступ строк |
| Уменьшить отступ строк |
Ctrl+F | Страница вниз |
Ctrl+B | Страница вверх |
| Вывести ASCII-значение символа |
| Повторить последнее изменение |
| Команда выравнивания строки |
| Команда выравнивания строк |
| Изменить регистр текущего символа |
Ctrl+S | Разделить область просмотра по горизонтали |
Ctrl+V | Разделить область просмотра по вертикали |
Ctrl+W, | Циклический переход к следующей части разделённой области просмотра |
Ctrl+W, Ctrl+W Влево | Перейти к левой части разделённой области просмотра |
Ctrl+W, Ctrl+W Вправо | Перейти к правой части разделённой области просмотра |
Ctrl+W, Ctrl+W Вверх | Перейти к верхней части разделённой области просмотра |
Ctrl+W, Ctrl+W Вниз | Перейти к нижней части разделённой области просмотра |
Эти команды возможно использовать для перемещения по документу в обычном или визуальном режимах, а также совместно с какой-либо из вышеприведённых команд. Эти команды могут предваряться числом, которое обозначает количество соответствующих перемещений.
| Влево |
Влево | Влево |
Backspace | Влево |
| Вниз |
Вниз | Вниз |
| Вверх |
Вверх | Вверх |
| Вправо |
Вверх | Вправо |
Пробел | Вправо |
| Конец строки |
End | Конец строки |
| Первый символ в строке (позиция 0) |
Home | Первый символ в строке |
| Первый непустой символ в строке |
| С определением символа, к которому следует перейти справа от курсора |
| С определением символа, к которому следует перейти слева от курсора |
| С определением символа, к которому следует перейти справа от курсора, поместив курсор на символ перед ним |
| С определением символа, к которому следует перейти слева от курсора, поместив курсор на символ перед ним |
| Первая строка |
| Последняя строка |
| Следующее слово |
| Следующее слово, отделённое пробелом |
| Предыдущее слово |
| Предыдущее слово, отделённое пробелом |
| Конец слова |
| Конец слова, отделённого пробелом |
| Конец предыдущего слова |
| Конец предыдущего слова, отделённого пробелом |
| С определением номера позиции в строке для перехода |
| С определением элемента для перехода |
| Отметка |
| Первый непробельный символ строки с отметкой |
| Предыдущая открывающая скобка |
| Следующая открывающая скобка |
| Предыдущая закрывающая скобка |
| Следующая закрывающая скобка |
Ctrl+I | Перейти к следующему расположению |
Ctrl+O | Вернуться к предыдущему расположению |
| Перейти к первой строке на экране |
| Перейти к строке в середине экрана |
| Перейти к последней строке на экране |
| Перейти к указанной в процентах позиции в документе |
| Перейти на строку выше визуально (в случае использования динамического переноса строк) |
| Перейти на строку ниже визуально (в случае использования динамического переноса строк) |
Ctrl+Влево | Перейти на слово влево |
Ctrl+Вправо | Перейти на слово вправо |
Текстовые объекты возможно использовать для выбора определённых частей документа.
| Блок слова: слово с пробелами |
| Слово: слово без пробелов |
| От предыдущих двойных кавычек ( |
| От предыдущих двойных кавычек ( |
| От предыдущих одинарных кавычек ( |
| От предыдущих одинарных кавычек ( |
| От предыдущей открывающей круглой скобки [ |
| От предыдущей открывающей круглой скобки [ |
| От предыдущей открывающей квадратной скобки ( |
| От предыдущей открывающей квадратной скобки ( |
| От предыдущей открывающей фигурной скобки ( |
| От предыдущей открывающей фигурной скобки ( |
| От предыдущей открывающей угловой скобки ( |
| От предыдущей открывающей угловой скобки ( |
| От предыдущего обратного апострофа ( |
| От предыдущего обратного апострофа ( |
Ctrl+D | Уменьшить отступ |
Ctrl+T | Увеличить отступ |
Ctrl+E | Вставить снизу |
Ctrl+Y | Удалить слово |
Ctrl+W | Удалить слово |
Ctrl+U | Удалить строку |
Ctrl+J | Новая строка |
Ctrl+H | Удалить символ в обратном направлении |
Ctrl+Home | Перейти к первому символу в документе |
Ctrl+R | Вставить содержимое регистра n |
Ctrl+O, | Перейти в обычный режим только для одной команды |
Ctrl+A | Увеличить текущее выбранное число |
Ctrl+X | Уменьшить текущее выбранное число |
Этого объекта нет в Vim. Текстовый объект, ограниченный запятыми, упрощает изменение списков параметров на C-подобных языках и других списков, разделённых запятыми. Таким текстовым объектом является фрагмент текста между двумя запятыми или между запятой и скобкой. На снимке обозначены красным фоном три диапазона текстовых объектов.
