nano_logo

Наверно каждый из тех, кто побывал в консоли Linux, хотя бы раз пользовался героем сегодняшней статьи. Любой из дистрибутивов Linux сложно представить без него. Он упоминается во множестве статей по настройке любого Linux софта. Его простота позволяет новичкам быстро решать поставленные задачи. Профи администрирования ухмыляются при виде него. Чуть окрепшие на поприще администрирования считают его использование моветоном и признаком недостаточного профессионализма. Но мы то знаем, что сами они используют его, когда другие не видят.

Итак, героем нашего обзора сегодня становится консольный текстовый редактор GNU nano.

Из всех консольных текстовых редакторов, nano наверно самый востребованный. Ведь даже пользователи vim, emacs и прочих мощных инструментов обработки текста, все равно регулярно обращаются к nano за помощью. Есть конечно индивиды, которые байкотируют его использование, но из всех моих знакомых только один принципиально не вводит заветные четыре буквы в терминал.

Казалось бы, а зачем рассказывать об использовании такого простого продукта? Цель одна — все мы привыкаем к стандартным сценариям взаимодействия с программными продуктами, в результате часть функционала ускользает.

Начнем пожалуй. Для установки nano, если он вдруг не стоит, необходимо выполнить команду:

nano можно настроить под себя тремя способами: задать параметры ключами запуска, сделать необходимые настройки в конфигурационном файле, настроить его работу в активном сеансе. В последнем случае после рестарта изменения настроек будут потеряны.

Глобальный конфигурационный файл nanorc лежит в /etc . Но я рекомендую скопировать себе в профиль:

Запускается nano командой

либо с дополнительными опциями:

Ключи запуска nano позволяют сразу после старта пользоваться полезными фишками утилиты.

Создадим текстовый файл и немного с ним поиграемся.

Как и прочие редакторы, nano создаст новый файл после попытки сохранения, если раньше его не существовало.

nano_clear

Перед нами предстал минималистичный интерфейс редактора. Мы можем писать текст, перемещаться по файлу стандартными способами методом нажатия стрелок. На этом сценарий наверно 99% примеров использования исчерпывается. Но я настоятельно рекомендую изучить весь его функционал. А то у большинства мнение, что nano аналог notepad в Windows.

Все возможности редактора отражены в специально подготовленной мной таблице. Основные команды выполняются сочетаниями клавиш Ctrl+key. Также активно используются хоткеи с клавишей Meta, которая обычно назначена на Alt или Win.

Таблица возможностей nano:

FnCtrl+Meta+Конфиг. файлКлюч запускаОписание
F1Ctrl+GВызов справки
F2Ctrl+XВыход из программы. Если файл был изменен, программа спросит, нужно ли сохранять буфер. Ответом будет стандартный Y/N. В случае подтверждения сохранения утилита пропросит имя и путь файла
F3Ctrl+OЗаписать файл на диск
F4Ctrl+JВыровнять абзац. Абзацы разделены пустыми строками. Если выравнивание не требуется, курсор перейдет на следующий. Важно, что выравнивание будет под ширину текущего терминала
F5Ctrl+RВставка другого файла в текущий. Одна из моих любимых фишек. После нажатия будет предложен выбор. Либо указать путь до файла (TAB отлично работает), либо с помощью Ctrl+T выбрать файл, либо вставить вывод внешнего источника (например nslookup admins.su). Ctrl+C остановит выполнение зацикленных команд, так что смело можно пробовать ping 8.8.8.8
F6Ctrl+WПоиск текста. Можно использовать регулярные выражения
F7Ctrl+YСтраница вперед
F8Ctrl+VСтраница назад
F9Ctrl+KВырезать текущую строку и сохранить ее в буфере обмена
Meta+Crtl или Meta+6Копировать текущую строку и сохранить ее в буфере обмена
F10Ctrl+UВставить строку
F11Ctrl+CПоказать текущее положение курсора
F12Ctrl+TПроверить орфографию. Для работы требуется внешний спеллер. Спеллер указывается в конфиге nano в параметре set speller "Спеллер"
F13Crtl+_Meta+G+row, columnПерейти по номеру строки и ряда. В появившемся меню необходимо через запятую указать номер, ряд.
F14Crtl+\Meta+R Заменить текст или регулярное выражение
F15Crtl+CrtlMeta+AОтметить текст в текущей позиции курсора
F16Meta+WПовторить последний поиск
Meta+}Увеличить отступ строки
Meta+{Уменьшить отступ строки
Crtl+FВперёд на один симво
Crtl+BНазад на один символ
Crtl+SpaceВперёд на одно слово
Meta+SpaceНазад на одно слово
Crtl+PНа предыдущую строку
Crtl+NНа следующую строку
Crtl+AНа начало текущей строки
Crtl+EВ конец текущей строки
Meta+( или Meta+9На начало текущего абзаца, потом следующего абзаца
Meta+) или Meta+0В конец текущего абзаца, потом следующего абзаца
Meta+- или Meta+_Прокрутить одну строку вверх, не перемещая курсор
Meta++ или Meta+=Прокрутить одну строку вниз, не перемещая курсор
Meta+< или Meta+,Переключить на предыдущий буфер
Meta+> или Meta+.Переключить на следующий буфер
Meta+VВставить следующую комбинацию клавиш как есть
Ctrl+IВставить табуляцию в позиции курсора
Ctrl+MВставить строку в позиции курсора
Ctrl+DУдалить символ под курсором
Ctrl+HУдалить символ слева от курсора
Meta+TВырезать с текущей позиции до конца файла
Meta+JВыровнять весь файл
Meta+DПодсчитать количество слов, строк и символов
Ctrl+LОбновить текущий экран
Ctrl+ZПриостановить редактор
Meta+XРежим справки разрешить/запретить
Meta+C Постоянное отображение положения разрешить/запретить
Meta+OИспользование дополнительной строки для редактирования разрешить/запретить
Meta+Sset smooth-S --smoothПлавная прокрутка разрешить/запретить
Meta+PОтображение пробелов разрешить/запретить
Meta+YПодсветка синтаксиса разрешить/запретить. Настройка видов подсветки производится в конфиг файле.
Meta+Hset smarthomeУмная кнопка home разрешить/запретить
Meta+I set autoindent-i --autoindenАвтоотступы разрешить/запретить
Meta+Kset cutВырезать до конца разрешить/запретить
Meta+L -w --nowrapАвтоматическая разбивка строк разрешить/запретить
Meta+Qset tabstospacesПреобразование ввода табуляций в пробелы разрешить/запретить
Meta+B Делать резервные копии разрешить/запретить
Meta+Fset multibufferНесколько файловых буферов разрешить/запретить
Meta+Mset mouseПоддержка мыши разрешить/запретить
Meta+Nset noconvertБез преобразования из формата DOS/Mac разрешить/запретить
Meta+ZПриостановка разрешить/запретить
Meta+$Мягкий перенос строк разрешить/запретить
set undo-u --undoРазрешить функцию отмены действий
Meta+UUndo, если разрешено
Meta+ERedo, если разрешено
set view-v --viewРежим просмотра
-x --nohelpНе показывать две строки помощи cнизу
set backup-B --backupСохранять резервные копии существующих файлов. Например, если выполнить команду nano –B file.txt в момент сохранения будет создано 2 файла: file.txt – редактируемый файл и file.txt~ – будет иметь содержание file.txt до последнего сохранения.
set historylogВключить historylog