Введение в POSIX'ивизм

       

Nano: входной билет к мир редакторов


Редактор nano вполне может сыграть роль своего рода амортизатора для начинающего пользователя. Да, это не emacs, и даже не joe. Но с задачей конфигурирования справляется успешно. А в освоении и`обращении - прост, как грабли. Не случайно во многих Source Based дистрибутивах он предлагается в качестве общесистемного. В Gentoo Linux же, где при установке необходимость в ручном редактировании конфигурационных файлов возникает весьма часто - так это просто единственный редактор, доступный на стадии инсталляции системы.

Итак, представляю: редактор nano, или, точнее, GNU nano. Официальным местопребыванием имеет сайт http://www.nano-editor.org. Генетически связан с pico - текстовым редактором, входящим в почтовый пакет pine, но, в отличие от него, распространяется на условиях лицензии GPL (и, что немаловажно, не тянет за собой почтовой системы - возможно, не всем нужной). Характеризуется авторами как маленький и дружелюбный. Что в целом соответствует истине.

Редактор nano чисто консольный и запускается из строки шелла одноименной командой, можно - с указанием имени файла, существующего или нового (в последнем случае, как обычно, файл с таким именем будет создан). Поддерживается несколько опций командной строки, как то: -T #, устанавливающей величину (в символах) табуляции, -i, включающей автоматические отступы, -w, отключающей режим переноса строк на границе экрана (что очень важно при редактировании конфигурационных файлов), и так далее. Полный их список можно посмотреть посредством

$ man 1 nano

После запуска nano перед глазами возникает нечто вроде следующего. Верху - титульная строка, в которой выводятся номер версии программы, имя открытого файла и, в правом углу, сообщение о том, что файл был изменен. В нижней части экрана можно видеть зону подсказки - список основных из управляющих клавишных последовательностей (образованных сочетанием Control+литера) с пояснениями на языке установленной локали.

Область между титульной строкой и зоной подсказки - рабочая, в ней осуществляется ввод и редактирование текста.
В nano предусмотрен ( в отличие, например, от vi и vim) только один режим работы. То есть текст вводится обычным образом, а для вызова команд предусмотрены управляющие последовательности.

В nano существует два вида управляющих последовательностей - Control+литера и Meta+литера. Посредством первых (частично дублируемых функциональными клавишами F1-F12) осуществляется редактирование текста и операции с файлами. Meta-последовательности предназначены для изменения настроек редактора (тот же результат достигается и опциями командной строки).

Напомню, что на клавиатуре PC роль Meta-клавиши выполняет обычно нажатие клавиши Alt (в некоторых раскладках - конкретно Alt'а правого, или, напротив, левого), или нажатие и отпуск клавиши Escape.

Control-последовательности - следующие (в скобках - дублирующие функциональные клавиши и, иногда, Meta-последовательности):

  • Control+G (F1) - вызов меню полной подсказки;


  • Control+X (F2) - выход из программы;




  • Control+O (F3) - запись текущего файла;


  • Control+R (F5) - вставка файла в текущий;


  • Control+W (F6) - поиск текста в текущем файле;


  • Control+(F14 или Meta+R) - замена текста в текущем файле;


  • Control+Y (F7 или PgUp) - перемещение на предыдущий экран;


  • Control+V (F8 или PgDwn) - перемещение на следующий экран;


  • Control+K (F9) = удаление (Cut, вырезать) строку в позиции курсора с сохранением ее в буфере (cutbuffer);


  • Control+U - (F10) - вставка содержимого cutbuffer'а в строку в позиции курсора; если последняя не менялась - выполняет роль Undo (отмены), штатно не предусмотренной;


  • Control+C (F11) - вывод информации о положении курсора в форме вроде


  • [ строка 4 из 81 (4%), символ 117 из 3092 (3%) ]

  • Control+T (F12) - проверка орфографии (посредством установленной программы спеллинга, например, ispell);


  • Control+P - перемещение курсора на одну строку вверх;


  • Control+N - перемещение курсора на одну строку вниз;


  • Control+F - перемещение курсора на один символ вперед;


  • Control+B - перемещение курсора на один символ назад;




  • Control+A - перемещение курсора в начало текущей строки;


  • Control+E - перемещение курсора в конец текущей строки;


  • Control+L - перерисовка текущего экрана;


  • Control+^ (Meta+A) - выделение (и помещение в буфер) текста, начиная с текущей позиции курсора;


  • Control+D - удаление символа в позиции курсора;


  • Control+H - удаление символа слева от курсора;


  • Control+I - вставка символа табуляции;


  • Control+J (F4) автозаполнение текущего абзаца;


  • Control+M вставка символа перевода строки (CR) в позиции курсора;


  • Control+_ (F13 или Meta+G) - переход на указанный номер строки.


  • Meta- последовательности работают обычно как переключатели. С их помощью выполняются следующие действия:

  • Meta+C - включение/выключение постоянного положения курсора;


  • Meta+I - включение/выключение автоотступов;


  • Meta+Z - включение/выключение приостановки;


  • Meta+X - включение/выключение вывода зоны подсказки;


  • Meta+P - включение/выключение режима эмуляции редактора pico;


  • Meta+W - включение/выключение режима переноса слов;


  • Meta+M - включение/выключение поддержки мыши (только при сборке с поддержкой gpm;


  • Meta+K - разрешить/запретить вырезание до конца;


  • Meta+E - включение/выключение использования регулярных выражений (regexp).


  • Собственно, это и все. Функциональные возможности nano отнюдь не производят впечатления исключительно богатых. Однако со своей ролью - несложной правкой небольших конфигурационных файлов, - он вполне вполне справляется. И, к тому же, в нем предусмотрено еще и внешнее средство конфигурирования - пользовательский конфиг ~/nanorc. Выполнив в нем некоторые манипуляции, можно несколько расширить функциональность редактора, в частности, обеспечить подсветку синтаксиса.


    Содержание раздела