Linux для пользователя
Шрифт:
Макро-команды после определения записываются в файл cedit/cooledit.macros в Вашем домашнем каталоге. Вы можете удалить макрос удалением соответствующей строки в этом файле.
При выполнении операций замены (по функциональной клавише ‹F4›) вы можете использовать функции поиска и замены scanf для поиска и замены в соответствии с шаблонами формата языка C. Вначале посмотрите man-страницы sscanf и sprintf, чтобы узнать, что такое шаблоны формата и как они работают.
Приведем пример: предположим, вы хотите заменить все вхождения блоков текста, состоящих из открывающей скобки, трех разделенных запятыми чисел, и закрывающей скобки, на блок, состоящий из слова apples, третьего числа исходного блока,
Последняя из этих строк говорит, что третье и второе число должны быть подставлены на места первого и второго аргументов. Рекомендуется все же при осуществлении замены пользоваться опцией "спрашивать подтверждение" ("Prompt on replace"), потому что программа считает совпадениями все случаи, когда число аргументов совпадает с заданным, хотя это не всегда означает полное совпадение. Scanf также не обращает внимания на количество символов пробела.
Встроенный редактор обрабатывает символы из второй половины кодовой таблицы (160+). Но когда редактируете бинарные файлы, лучше установить опцию Биты символов (Display bits) из меню Настройки в положение "7 бит", чтобы сохранить формат файла.
Для того, чтобы описать здесь все функции встроенного редактора, потребовалось бы слишком много места. Да в этом и нет нужды, поскольку для его использования достаточно запомнить, что все основные операции можно выполнить через пункты меню, которое вызывается нажатием клавиши ‹F9› в окне редактирования. Кроме того, можно прочитать man-страницу по команде man mcedit или info mcedit.
В завершение этой краткой справки по встроенному редактору программы Midnight Commander мне хочется рассказать о том, как осуществляется перенос фрагментов текста из одного файла в другой.
Если вы работаете в консоли, то эта задача решается через меню или с помощью следующих операций:
• отмечаем начало блока с помощью клавиши ‹F3›;
• перемещаем курсор к концу блока;
• отмечаем конец блока с помощью клавиши ‹F3›;
• набираем комбинацию ‹Ctrl›+‹Insert›;
• закрываем этот файл, открываем другой;
• ставим курсор туда, куда хотим вставить данный фрагмент, и нажимаем комбинацию клавиш ‹Shift›+‹Insert›.
Все, задача выполнена. Перенос фрагмента текста этим способом может быть произведен из одной виртуальной консоли в другую.
Но все это работает только в консоли. А при работе с тем же редактором в окне графической оболочки та же задача была для меня достаточно долгое время проблемой.
Я не сразу нашел способ ее решения (т. е. переноса фрагмента текста), который работает как в консоли, так и в окне графической оболочки. Этот способ состоит в переносе фрагмента текста через другой файл (по умолчанию используется файл ~/.cedit/cooledit.clip). Выделите фрагмент текста, выберите пункт меню Файл | Копировать в файл (File | Copy to file) и нажмите ‹Enter›. Затем переходите в другой файл, ставите курсор туда, куда надо вставить фрагмент, и выбираете пункт меню Файл | Вставить файл (File | Insert file).
12.6. Редакторы ASCII-файлов для графического режима
Очевидно, что было бы очень удобно, если бы редактирование ASCII-файлов в графическом режиме осуществлялось с помощью тех же редакторов, которые применяются в консольном режиме. Тогда не пришлось бы заучивать другие комбинации клавиш, менять привычную среду. Редактор CoolEdit, о котором было рассказано в предыдущем подразделе, может запускаться через эмулятор терминала и использоваться, таким образом, в графическом режиме. Однако, при этом оказывается, что некоторые комбинации клавиш в эмуляторе не работают или работают не так, как в консоли. Кроме того, работа с мышкой в редакторах, изначально ориентированных на графический режим, организована гораздо лучше, чем в консольных редакторах, в силу чего повышается общее удобство работы (хотя, может быть, это чисто мое субъективное ощущение). Поэтому я все же рекомендую не ограничиваться использованием только консольного редактора для ASCII-файлов, а освоить один из многочисленных редакторов, ориентированных на обработку таких файлов в графическом режиме. Рассмотрим три подобных редактора.
12.6.1 Редактор KEdit
Редакторы KEdit и KWrite входят в состав графической среды KDE. Они предназначены для работы в графическом режиме, но работают с ASCII-файлами. Редакторы очень похожи, поэтому я расскажу вначале о KEdit, а затем просто укажу на отличия, имеющиеся во втором редакторе.
Редактор KEdit очень прост в использовании и, если вы вообще, когда-нибудь занимались редактированием текста, у вас не возникнет с ним проблем. К тому же, если KDE у вас уже русифицирован, то не возникнет никаких проблем с вводом и отображением кириллических символов. Более того, меню и сообщения программы тоже русифицированы.
Открыть файл для редактирования можно через меню или по комбинации ‹Ctrl›+‹O›. При этом появляется окно, в котором можно выбрать файл для редактирования. Тут все привычно, и думаю, что дополнительных пояснений вам не потребуется. Кроме этого способа, работая в среде KDE, можно воспользоваться и методом "Drag and Drop". Это значит, что из файлового менеджера Konqueror вы можете прихватить файл мышкой и просто "бросить" его в окно KEdit.
Основные операции редактирования осуществляются с помощью клавиатуры. По клавише ‹Insert › происходит переключение между режимами вставки и замены символов. Перемещение по тексту осуществляется с помощью клавиш-стрелок и клавиш ‹Page Down›, ‹Page Up›, ‹Home› (переход в начало строки), ‹End› (переход в конец строки). Выделить блок текста (к сожалению, только линейный) можно с помощью мыши или клавишами стрелок при нажатой клавише ‹Shift›. Клавиша ‹Delete› удаляет символ справа от курсора или выделенный блок текста.
Рис. 12.9. Окно редактора KEdit.
Во многих редакторах, и в том числе в KEdit, операции перемещения по тексту и удаления, можно выполнять также с помощью "горячих" комбинаций клавиш (возможно, в связи с тем, что на старых терминалах не было клавиш стрелок?):
• ‹Ctrl›+‹A› - переместить курсор в начало строки.
• ‹Ctrl›+‹B› - переместить курсор на один символ вправо.
• ‹Ctrl›+‹E› - переместить курсор в конец строки.
• ‹Ctrl›+‹N› - переместить курсор на одну строку вниз.
• ‹Ctrl›+‹P› - переместить курсор на одну строку вверх.
• ‹Ctrl›+‹D› - удалить символ справа от курсора.
• ‹Ctrl›+‹H› - удалить символ слева от курсора.
Основные команды по переносу блоков текста из одного места в другое осуществляются с помощью тех же комбинаций, которые используются в редакторе из Midnight Commander и многих других редакторах, так что пальцы находят эти комбинации уже автоматически:
• ‹Ctrl ›+‹C› - скопировать выделенный текст в буфер обмена (clipboard);