Алексей Федорчук
Версия 2, 2005.12.04
Редактор nano вполне может сыграть роль своего рода амортизатора для начинающего пользователя. Да, это не emacs, и даже не joe. Но с задачей конфигурирования справляется успешно. А в освоении и`обращении - прост, как грабли. Не случайно во многих дистрибутивах Linux он предлагается в качестве общесистемного. В Gentoo Linux, где при установке необходимость в ручном редактировании конфигурационных файлов возникает весьма часто - так это просто единственный редактор, доступный на стадии инсталляции системы. В CRUX и Archlinux он, правда, во время установки соседствует с vi - имитирующем тот самый, первозданный, и потому тоже может оказаться предпочтительным.
Не след забывать о nano и пользователям Kubuntu. Конечно, с одной стороны, они имеют мощный и удобный инструмент редактирования в Иксах - Kate, с другой - и Vim'ом эта система не обделена. Но, как было показано в заметке о русфиикации, даже в этом гуманистическом дистрибутиве иногда возникает потребность в чисто консольном редакторе, а многие ли из начинающих пользователей способны сразу же смотреть на него без содрогания? Наконец, пользователям Ubuntu для настроечных процедур nano может подойти даже больше, чем штатный Gedit из комплекта GNOME...
Столь длинное вступление направлено к тому, что затратить толику времени на освоение nano - дело стоящее для многих линуксоидов. Тем более, что, как уже было сказано, в освоении он прост, а возможностей у него больше, чем может показаться на первый взгляд. Правда, не намного больше...
Итак, представляю: редактор nano, или, точнее, GNU nano. Официальным местопребыванием имеет сайт http://www.nano-editor.org. Генетически связан с pico - текстовым редактором, входящим в почтовый пакет pine, но, в отличие от него, распространяется на условиях лицензии GPL (и, что немаловажно, не тянет за собой почтовой системы - возможно, не всем нужной). Характеризуется авторами как маленький и дружелюбный. Что в целом соответствует истине.
Редактор nano чисто консольный и запускается из строки шелла одноименной командой, можно - с указанием имени файла, существующего или нового (в последнем случае, как обычно, файл с таким именем будет создан). Поддерживается несколько опций командной строки, как то: -T #, устанавливающей величину (в символах) табуляции, -i, включающей автоматические отступы, -w, отключающей режим переноса строк на границе экрана (что очень важно при редактировании конфигурационных файлов), и так далее. Полный их список можно посмотреть посредством
$ man 1 nano
После запуска nano перед глазами возникает нечто вроде следующего (рис. 1). Верху - титульная строка, в которой выводятся номер версии программы, имя открытого файла и, в правом углу, сообщение о том, что файл был изменен. В нижней части экрана можно видеть зону подсказки - список основных из управляющих клавишных последовательностей (образованных сочетанием Control+литера) с пояснениями на языке установленной локали.

Рис. 1. Редактор nano - внешний вид
Область между титульной строкой и зоной подсказки - рабочая, в ней
осуществляется ввод и редактирование текста. В nano предусмотрен (в
отличие, например, от vi и vim) только один режим
работы. То есть текст вводится обычным образом, а для вызова команд
предусмотрены управляющие последовательности.
В nano существуют два вида управляющих последовательностей - собственно управляющие, Control+литера, и мета-последовательности, Meta+литера. Посредством первых осуществляется редактирование текста и операции с файлами. Управляющие последовательности частично дублируются функциональными клавишами F1-F16 (вызов F13-F16 - посредством сочетания Shift+F1-F4). Meta-последовательности предназначены для изменения настроек редактора (тот же результат достигается и опциями командной строки).
Напомню, что на клавиатуре PC роль Meta-клавиши выполняет обычно нажатие клавиши Alt (в некоторых раскладках - конкретно Alt'а правого, или, напротив, левого), или нажатие и отпуск клавиши Escape.
Control-последовательности - следующие (в скобках - дублирующие функциональные клавиши и, иногда, Meta-последовательности):
[ строка 4 из 81 (4%), символ 117 из 3092 (3%) ]
Meta-последовательности работают обычно как переключатели. С их помощью выполняются следующие действия:
pico;gpm;Кроме того, в nano предусмотрено еще и внешнее средство конфигурирования -
пользовательский конфиг ~/.nanorc. Выполнив в нем некоторые
манипуляции, можно несколько расширить функциональность редактора, в частности,
обеспечить подсветку синтаксиса.
Правда, по умолчанию этот файл не устанавливается, и сам собой, при запуске редактора, не образуется. Пример его (nanorc.sample.gz) следует отыскать в файловом древе (например, в Kubuntu - в каталоге /usr/share/doc/nano/examples/) и поместить в свой домашний каталог:
$ zcat /usr/share/doc/nano/examples/nanorc.sample.gz > ~/.nanorc
после чего отредактировать по собственному усмотрению. Правда, для этого редактор должен быть перед сборкой сконфигурирован с опцией with --enable-nanorc, но, насколько я знаю, в большинстве дистрибутивов (в частности, в Kubuntu) так оно и есть (если нет - nano придется пересобрать самому).
Описывать подробно устройство ~/.nanorc не буду - остановлюсь только на моментах, представляющихся мне самыми важными. По умолчанию все опции настройки закомментированы - чтобы сделать их лдейственными, с соответствующих строк требуется снять символ #. И первый кандидат на раскомметаривание - строка
set nowrap
Запрещающая перенос слов по достижении границы экрана. Это очень важно в том случае, если nano используется преимущественно для редактирования конфигурационных файлов, обычно болезненно реагирующих на разрывы строк в произвольных местах. Хотя того же эффекта можно достичь, запуская nano с опцией -w - я, тем не менее, предпочитаю перестраховаться.
Далее - проверка орфографии, Для обеспечения оной нужно снять комментарий со строки
set speller "aspell -x -c"
В результате по комбинации Control+T (или по F12) для спеллинга будте вызываться программа aspell - если она, конечно, установлена и снабжена словарем для требующегося языка. Разумеется, aspell можно заменить ispell'ом.
И, наконец, подсветка синтаксиса. В nano она предусмотрена для нескольких языков программирования (Си, Java, Perl) и таких языков разметки, как HTML, TeX, Groff, нужно только снять комментарии с соответствующих строк. В частности, если расокмментировать всю секцию за строкой
то будут подсвечиваться теги HTML. А если внести в ~/.nanorc такие строки:
то колоризуются конструкции шелл-скриптов (в "образцовом" ~/.nanorc таких строк нет).
Собственно, это и все. Функциональные возможности nano отнюдь не
производят впечатления исключительно богатых. Однако со своей ролью - несложной
правкой небольших конфигурационных файлов, - он вполне вполне справляется. А способность подключать программы проверки орфографии позволяет использовать его и для сочинения просто текстов.