Вопрос или проблема
Экспериментируя с текстовым редактором ex
, я выполнил команду :$i
(которая вставляет текст перед последней строкой) и обнаружил, что не могу продолжить.
Я предположил, что смогу вернуться в нормальный режим, нажав esc, как в vi(m), но это не имело никакого эффекта.
Теперь я не могу найти способ сохранить, выйти или выполнить какое-либо действие, кроме как набирать больше символов в файл.
Как я могу решить эту ситуацию?
Для возврата в командный/нормальный режим, нажмите . (точку), а затем клавишу Enter. Точка должна быть единственным символом на линии.
По умолчанию
ex
запускается в командном режиме, который обозначается подсказкой:
; см. команду prompt. Режим ввода текста можно включить с помощью команд добавления, вставки или изменения; его можно завершить (и вернуться в командный режим), набрав<точку>
(.
) единственным символом в начале строки.
Это поведение унаследовано от более старого редактора ed
.
Чтобы выйти из режима вставки в ex
, вы можете нажать Ctrl + C, чтобы прервать текущую команду и вернуться к командной строке ex.
Чтобы выйти командой ., а затем нажать enter, вы всегда должны находиться на новой строке, и первым символом должна быть . (точка). Не должно быть никаких символов до или после нее.
Оттуда вы можете перейти к другим действиям, таким как сохранение, выполнение дополнительных правок или выход из программы с :q!
Ответ или решение
Работа с текстовым редактором ex может показаться запутанной, особенно для тех, кто привык к более современным средам редактирования, таким как vi или vim. Однако понимание его особенностей и способов взаимодействия с ним может значительно облегчить задачи по редактированию текста, особенно в сценариях, где требуется минимальное использование системных ресурсов. Рассмотрим подробнее, как выйти из командной строки "i" в ex.
Теория
Редактор ex — это строковая версия текстового редактора vi, который, в свою очередь, является улучшенной версией ed. В то время как vi и vim представляют собой полноэкранные редакторы, ex работает в текстовом режиме командной строки. По умолчанию ex находится в командном режиме, что обозначается в командной строке символом двоеточия (:).
Для редактирования текста в ex используются специальные команды ввода, такие как append (a), insert (i) и change (c). При этом редактирование происходит в текстовом режиме, выйти из которого можно, следуя определённым правилам. Переход в командный режим обратно осуществляется вводом точки (.) в начале новой строки и нажатием клавиши Enter.
Пример
Предположим, что вы используете команду :$i
, чтобы начать ввод текста в конец файла. Вы ввели необходимый текст, но ситуация усложняется, если вы не знаете, как завершить режим вставки и сохранить ваши изменения — все команды, обычно работающие в vi(m), например, нажатие клавиши Esc
, в ex не работают.
Применение
Чтобы выйти из режима вставки в ex и вернуться в командный режим, выполните следующие шаги:
- Завершите ввод текста. Убедитесь, что курсор находится в новой строке.
- Введите точку (.). Это должно быть единственным символом в строке.
- Нажмите Enter. Это действие завершит режим вставки и вернёт вас в командный режим ex.
На этом этапе вы можете выполнять дальнейшие действия: сохранять изменения, редактировать что-то дополнительно, либо закрыть редактор. Чтобы сохранить и выйти, введите команду :wq
, а для выхода без сохранения используйте :q!
.
Если вы используете Живую сессию, идущую не по плану, например, застряли в режиме вставки, можно также использовать комбинацию клавиш Ctrl+C
, которая прерывает текущую команду и возвращает вас в командный режим ex. Однако точка (.) является более предпочтительным методом для завершения ввода при обычной работе.
Заключение
Работа с ex требует понимания некоторых его базовых принципов и отличий от полноэкранных редакторов. Умение правильно завершать режимы ввода в ex не только предотвращает путаницу, но и делает процесс редактирования более эффективным и гибким. Освоив методики работы в ex, вы сможете облегчить выполнение редактирования текста даже в условиях необходимости минимального использования ресурсов или в системах, где полноэкранные редакторы недоступны.