редактор nano
Олексій Федорчук
2005 р - 2006 р
Редактор nano цілком може зіграти роль свого роду амортизатора для початківця користувача. Так, це не Vim, що не emacs, і навіть не joe. Але із завданням конфігурації справляється успішно. А в освоєнні і`обращеніі - простий, як граблі. Не випадково в багатьох дистрибутивах Linux він за замовчуванням пропонується в якості загальносистемного.
У Gentoo Linux, де при установці необхідність в ручному редагуванні конфігураційних файлів виникає досить часто - так це просто єдиний редактор, доступний на стадії інсталяції системи. У CRUX і Archlinux він, правда, під час установки є сусідами з vi - імітує той самий, первозданний, і тому теж може виявитися кращим.
Чи не слід забувати про nano і користувачам Kubuntu. Звичайно, з одного боку, вони мають потужний і зручний інструмент редагування в іксах - Kate, з іншого - і Vim'ом ця система не обділена. Але, як ми побачимо пізніше, навіть в цьому гуманістичному дистрибутиві іноді виникає потреба в чисто консольному редакторі, а багато хто з початківців користувачів здатні відразу ж дивитися на Vim без здригання?
Нарешті, користувачам Ubuntu для настроювальних процедур nano може підійти навіть більше, ніж штатний Gedit з комплекту GNOME ... Настільки довгий вступ направлено до того, що затратити дещицю часу на освоєння nano - справа варта для багатьох линуксоидов. Тим більше, що, як уже було сказано, в освоєнні він простий, а можливостей у нього більше, ніж може здатися на перший погляд. Правда, не набагато більше ...
Отже, представляю: редактор nano, або, точніше, GNU nano. Офіційним місцем перебування має сайт nano-editor.org . Генетично пов'язаний з pico - текстовим редактором, що входять в поштовий пакет pine, але, на відміну від нього, поширюється на умовах ліцензії GPL (і, що важливо, не тягне за собою поштової системи - можливо, не всім потрібної). Характеризується авторами як маленький і доброзичливий. Що в цілому відповідає істині.
Редактор nano чисто консольний і запускається з рядка шелла однойменною командою, можна - із зазначенням імені файлу, існуючого або нового (в останньому випадку, як правило, файл з таким ім'ям буде створений). Підтримується кілька опцій командного рядка, як то: -T #, яка встановлює величину (в символах) табуляції, -i, що включає автоматичні відступи, -w, що відключає режим перенесення рядків на кордоні екрану (що дуже важливо при редагуванні конфігураційних файлів), і так далі. Повний їх список можна подивитися за допомогою
$ Man 1 nano
Після запуску nano перед очима постає щось на кшталт такого (рис. 1). Вгорі - титульний рядок, в якій виводяться номер версії програми, ім'я відкритого файлу і, в правому куті, повідомлення про те, що файл був змінений. У нижній частині екрана можна бачити зону підказки - список основних з керуючих клавішних послідовностей (утворених поєднанням <Control> + літера) з поясненнями на мові встановленої локалі.
Мал. 1. Редактор nano - зовнішній вигляд
Область між титульною строкойі зоною підказки - робоча, в ній здійснюється введення і редактірованіетекста. У nano передбачений (на відміну, наприклад, від vi і vim) тільки один режим роботи. Тобто текст вводиться звичайним чином, а для виклику команд передбачені керуючі послідовності. Ознайомитися з ними можна, викликавши вбудовану системуДопомога клавішею <F1>.
У nano існують два види керуючих послідовностей - обстоювання керуючі, <Control> + літера, і мета-послідовності, <Meta> + літера. За допомогою перших здійснюється редагування тексту та операції з файлами. Керуючі послідовності частково дублюються функціональними клавішами <F1> - <F16> (виклик <F13> - <F16> - за допомогою поєднання <Shift> + <F1> - <F4>). 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>) - заміна тексту в поточному файлі; спочатку вводиться замісник текст, потім, після натискання
<Enter> - замінний;<Control> + <Y> (<F7> або <PgUp>) - переміщення на попередній екран;
<Control> + <V> (<F8> або <PgDwn>) - переміщення на наступний екран;
<Control> + <K> (<F9>) = видалення (Cut, вирізати) рядок в позиції курсора (або групи виділених
за допомогою <Control> + <^> рядків) зі збереженням її в буфері (cutbuffer);<Control> + <U> - (<F10>) - вставка вмісту cutbuffer'а в рядок в позиції курсора; якщо остання не змінювалася - виконує роль Undo (скасування), штатно не передбаченої; може також використовуватися для необмеженого клонування рядки (або групи раніше
вирізаних за допомогою <Control> + <K>
рядків) в прозвольной частини тексту - досить після видалення перемістити курсор в потрібне місце;- <Control> + <C> (<F11>) - висновок інформації про становище курсору в формі на зразок [рядок 4 з 81 (4%), символ 117 з 3092 (3%)]
<Control> + <T> (<F12>) - перевірка орфографії (за допомогою зовнішньої програми Спеллінга, якщо вона встановлена і включена відповідна опція в конфіги, див. Нижче);
<Control> + <P> - переміщення курсору на один рядок вгору;
<Control> + <N> - переміщення курсору на один рядок вниз;
<Control> + <F> - переміщення курсору на один символ вперед;
<Control> + <B> - переміщення курсору на один символ назад;
<Control> + <A> - переміщення курсору на початок поточного рядка;
<Control> + <E> - переміщення курсору в кінець поточного рядка;
<Control> + <L> - перерисовка поточного екрану;
<Control> + <^> (<Meta> + <A>) - виділення тексту, починаючи з поточної позиції курсора, з метою
подальшого видалення (комбінацією <Control> + <K>) і перенесення в інше місце
(Комбінацією <Control> + <U>); зняття виділення - повторним натисканням <Control> + <^>;<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. Виконавши в ньому деякі маніпуляції, можна дещо розширити функціональність редактора, зокрема, забезпечити підсвічування синтаксису.
Правда, за замовчуванням цей файл не встановлюється, і сам собою, при запуску редактора, не утворюється. Приклад його (nanorc.sample.gz) слід відшукати в файловому дереві (наприклад, в Kubuntu - в каталозі / usr / share / doc / nano / examples /) і помістити в свій домашній каталог:
$ Zcat /usr/share/doc/nano/examples/nanorc.sample.gz> ~ / .nanorc
після чого відредагувати на власний розсуд. Правда, для цього редактор повинен бути перед складанням конфигурирован з опцією with --enable-nanorc, але, наскільки я знаю, в більшості дистрибутивів (зокрема, Ubuntu і Kubuntu) так воно і є (якщо немає - nano доведеться пересобрать самому).
Описувати детально пристрій ~ / .nanorc не буду - зупинюся тільки на моментах, які здавалися мені найважливішими. За замовчуванням всі опції настройки закоментовані - щоб зробити їх дієвими, з відповідних рядків потрібно зняти символ #. І перший кандидат на раскомметірованіе - рядок
set nowrap
що забороняє перенесення слів після досягнення межі екрану. Це дуже важливо в тому випадку, якщо nano використовується переважно для редагування конфігураційних файлів, зазвичай болісно реагують на розриви рядків в довільних місцях. Хоча того ж ефекту можна досягти, запускаючи nano з опцією -w - я, тим не менш, вважаю за краще перестрахуватися.
Далі - перевірка орфографії, Для забезпечення оной потрібно зняти коментар з рядка
set speller "aspell -x -c"
В результаті по комбінації <Control> + <T> (або по <F12>) для Спеллінга буде викликатися програма aspell - якщо вона, звичайно, встановлена і забезпечена словником для потрібного мови. Зрозуміло, aspell можна замінити ispell'ом - але в Kubuntu це робити не рекомендується (ispell так до сих пір і не навчився працювати з кодуванням UTF8).
І, нарешті, підсвічування синтаксису. У nano вона передбачена для декількох мов програмування (Сі, Java, Perl) і таких мов розмітки, як HTML, TeX, Groff, потрібно тільки зняти коментарі з відповідних рядків. Зокрема, якщо розкоментувати всю секцію за рядком
## Here is a short example for HTML
тобто:
syntax "HTML" ".html $" color cyan start = "<" end = ">>" color red "& [^; [[: space:]]] *;"
то будуть підсвічуватися теги HTML. А якщо внести в ~ / .nanorc такі рядки:
# Generic conf / rc / sh file syntax highlighting ######################################## ##### syntax "conf / rc / sh" "conf $ | rc $ | sh $" color white ". +" color green "^ #. *"
то колорізуются конструкції шелл-скриптів (в «зразковому» ~ / .nanorc таких рядків немає) Власне, це і все. Функціональні можливості nano аж ніяк не справляють враження виключно багатих. Однак зі своєю роллю - нескладної правкою невеликих конфігураційних файлів, - він цілком цілком справляється. А здатність підключати програми перевірки орфографії дозволяє використовувати його і для твори просто текстів.
Тепер залишається зробити nano редактором за замовчуванням - щоб використовувати його в командах типу sudoedit і visudo (а також в ряді інших випадків). Для чого скористаємося їм самим же, відкривши в ньому конфігураційний файл командної оболонки (у віртуальній консолі або термінальному вікні konsole:
$ Nano ~ / .bashrc
Тепер вписуємо в нього таку ось рядок:
export EDITOR = nano
визначальну змінну оболонки EDITOR. Тепер редактор nano буде викликатися при редагуванні системних конфігов командою sudoedit.