Режим редактирования emacs
Режим редактирования emacs применяется встроенными редакторами emacs и gmacs. Единственное различие между этими встроенными редакторами заключается в способе обработки клавиш Ctrl-T.
Для редактирования строки нужно поместить курсор в нужную позицию и вставить или удалить требуемые символы или слова. Все команды редактирования представляют собой управляющие символы или escape-последовательности.
Команды редактирования действуют в любой позиции курсора (не только в начале строки). Если не указано иное, после ввода команды не нужно нажимать ни клавишу Enter, ни клавишу перевода строки (стрелку вниз).
| Флаг | Описание |
|---|---|
| Ctrl-F | Перемещает курсор на один символ вперед (вправо). |
| Esc-F | Перемещает курсор на одно слово вперед. Словом считается произвольная последовательность символов, в которую входят только буквы, цифры и знаки подчеркивания. |
| Ctrl-B | Перемещает курсор на один символ назад (влево). |
| Esc-B | Перемещает курсор на одно слово назад. |
| Ctrl-A | Перемещает курсор в начало строки. |
| Ctrl-E | Перемещает курсор в конец строки. |
| Ctrl-] c | Перемещает курсор на указанный символ в текущей строке. |
| Esc-Ctrl-] c | Перемещает курсор назад до указанного символа в текущей строке. |
| Ctrl-X Ctrl-X | Меняет местами символы в помеченной позиции и в текущей позиции курсора. |
| ERASE | Удаляет предыдущий символ. (Пользовательский символ удаления, заданный с помощью команды stty; как правило соответствует клавишам Ctrl-H.) |
| Ctrl-D | Удаляет текущий символ. |
| Esc-D | Удаляет текущее слово. |
| Esc-Backspace | Удаляет предыдущее слово. |
| Esc-H | Удаляет предыдущее слово. |
| Esc-Delete | Удаляет предыдущее слово. Если символ прерывания вводится при нажатии клавиши Delete, то эта команда работать не будет. |
| Ctrl-T | Меняет местами текущий и следующий символы в режиме emacs. Меняет местами два предыдущих символа в режиме gmacs. |
| Ctrl-C | Если текущий символ - строчная буква, заменяет его на соответствующую прописную букву. |
| Esc-C | Заменяет в текущем слове все строчные буквы на прописные. |
| Esc-L | Заменяет в текущем слове все прописные буквы на строчные. |
| Ctrl-K | Удаляет все символы с текущей позиции курсора до конца строки. Если перед этой командой будет указано число, не превышающее текущую позицию курсора, то будут удалены все символы, начиная с указанной позиции и вплоть до позиции курсора. Если перед этой командой будет указано число, превышающее текущую позицию курсора, то будут удалены все символы, начиная с текущей и заканчивая заданной позицией курсора. |
| Ctrl-W | Удаляет символы с текущей позиции курсора до метки. |
| Esc-P | Заносит в стек символы с текущей позиции курсора до метки. |
| KILL | Пользовательский символ KILL, определенный с помощью команды stty; как
правило, соответствует клавишам Ctrl-G или символу @. Удаляет текущую строку. Если будет
последовательно указано несколько символов KILL, то все
символы KILL, кроме первого, будут заменены на символы
новой строки (эту функцию удобно применять при работе с
печатающими устройствами). |
| Ctrl-Y | Восстанавливает последний символ или слово, удаленные из строки. (Возвращает удаленное.) |
| Ctrl-L | Вводит символ новой строки и выдает текущую строку. |
| Ctrl-@ | (Пустой символ) Маркирует текущую позицию. |
| Esc-пробел | Маркирует текущую позицию. |
| Ctrl-J | (Символ новой строки) Выполняет текущую строку. |
| Ctrl-M | (Возврат каретки) Выполняет текущую строку. |
| EOF | Символ конца файла (обычно соответствует клавишам Ctrl-D) интерпретируется как конец файла только в случае, если текущая строка пустая. |
| Ctrl-P | Выдает предыдущую строку списка хронологии (предыдущую команду). Последовательно нажимая клавиши Ctrl-P, можно пролистать список хронологии назад до нужной команды. Команды, состоящие из нескольких строк, выдаются по одной строке за одно нажатие клавиш Ctrl-P. |
| Esc-< | Выдает первую строку списка хронологии (первую из сохраненных команд). |
| Esc-> | Выдает последнюю строку списка хронологии (последнюю выполненную команду). |
| Ctrl-N | Выдает следующую строку списка хронологии. Последовательно нажимая клавиши Ctrl-N, можно пролистать список хронологии вперед до нужной команды. |
| Ctrl-R строка | Просматривает файл хронологии от текущей позиции к
началу и пытается найти строку, в которой содержится
указанная подстрока. Если будет
указано значение 0, то поиск будет выполнен по направлению
к концу файла. Подстрока должна заканчиваться символом Enter или символом новой строки. Если перед строкой будет
указан символ (^), то искомая строка должна начинаться с указанной подстроки.
Если параметр
подстрока не будет указан, то будет
найдена следующая строка с последней указанной
подстрокой.
В этом случае значение
0 изменяет направление поиска. |
| Ctrl-O | Выполняет текущую строку и выдает следующую строку из файла хронологии. |
| Esc цифры | Задает числовой параметр. Указанные цифры будут переданы в качестве параметра в следующую команду. Числовые параметры допустимы для следующих команд: Ctrl-F, Ctrl-B, ERASE, Ctrl-C, Ctrl-D, Ctrl-K, Ctrl-R, Ctrl-P, Ctrl-N, Ctrl-], Esc-., Esc-Ctrl-], Esc-_, Esc-B, Esc-C, Esc-D, Esc-F, Esc-H, Esc-L и Esc-Ctrl-H. |
| Esc буква | Пытается найти псевдоним _буква в списке псевдонимов. Если такой псевдоним определен, то в очередь ввода будет помещено его значение. Параметр буква не должен соответствовать ни одной из escape-функций. |
| Esc-[ буква | Пытается найти псевдоним __буква (два знака подчеркивания и указанная буква) в списке псевдонимов. Если такой псевдоним определен, то в очередь ввода будет помещено его значение. В большинстве терминалов эту команду можно применять для программирования функциональных клавиш. |
| Esc-. | Вставляет в текущую строку последнее слово из предыдущей команды. Если перед этой командой будет задан параметр-число, то будет вставлено слово с указанным номером. |
| Esc-_ | Равносильна команде Esc-. . |
| Esc-* | Выполняет подстановку имен файлов для текущего слова. Если слово не соответствует ни одному
файлу или содержит специальные символы шаблона, то к нему будет добавлена звездочка (*). |
| Esc-Esc | Дополнение имени файла. Находит все файлы,
соответствующие маске, полученной путем добавления
звездочки к текущему слову. Выдает общий префикс имен этих
файлов. Если маске соответствует только один объект, то к его имени добавляется либо символ /, если это
каталог, либо пробел, если это файл. |
| Esc-= | Выдает список файлов, соответствующих маске, полученной путем добавления звездочки
(*) к текущему слову. |
| Ctrl-U | Умножает параметр следующей команды на 4. |
| \ | Игнорирует следующий специальный символ, считая его обычным символом. С помощью этой функции
можно ввести в командной строке или в строке поиска такие символы, как ERASE, KILL и INTERRUPT (обычно соответствует клавише Delete), а также
символы, соответствующие функциям редактирования \). Обратная косая черта аннулируют функции редактирования следующего введенного символа. |
| Ctrl-V | Показывает версию оболочки. |
| Esc-# | Вставляет символ # в начало строки и выполняет текущую строку. Эта функция позволяет вставить комментарий
в файл хронологии. |