Nano для меня one love инструмент повышения продуктивности работы в консоли, не больше, не меньше. Спорить о достоинствах и недостатках смысла не вижу. Одни защищают Emacs, превращая его в полноценную операционную систему с календарём, почтой и встроенным браузером. Другие восхищаются Vim, где можно писать код, не отрывая рук от клавиатуры, но ведь не даром, дядя, самый популярный запрос про vim в Google до сих пор - «how to exit Vim».

Nano в этом шуме выглядит почти аскетом. Он не требует зубрёжки, всё нужное видно внизу экрана, и вы можете начать редактировать файл, даже если впервые видите консоль.
Из реальных недостатков я за длительное время использования слышал лишь о мелочи: при удалённой работе по ssh стрелки вправо и влево иногда ведут себя странно - не по вине nano, а из-за несовпадений в настройках терминала.

Однако работу с редактором можно сделать еще удобнее, если немного поработать с конфигурационным файлом, чему и посвящена данная статья.

Раздел для тех, кто не знаком с GNU nano

Давным-давно, когда Unix ещё казался чем-то суровым и академическим, для электронных писем использовали почтовый клиент Pine, внутри которого прятался скромный текстовый редактор Pico - простой, понятный, с подсказками прямо на экране. Именно он стал первым редактором, где рядовые пользователи почувствовали себя уверенно: не нужно было гадать, какая комбинация клавиш сохранит файл или как выйти без жертв.

Когда Linux начал массово захватывать университетские лаборатории и серверные, Pico стал любимцем студентов и админов. Но у него была проблема - лицензия. Один из базовых дистрибутивов Linux - Debian, с его принципиальным подходом к свободному софту, просто не включал Pico в систему. Пришлось искать альтернативу.

Тогда, в конце 1999 года, один студент - Крис Аллегретта - решил сделать полностью свободный аналог Pico. За один уикенд он наколдовал первую версию, назвав её TIP (Tip Isn’t Pico). Версия была почти бесполезной: не сохраняла файлы и даже не имела справки. Но зато она была свободной, и поэтому проект получил развитие

Когда выяснилось, что в Unix уже существует утилита tip, редактор переименовали в nano - шутливо расшифровая как Nano’s ANOther text editor. В 2001 году сам Ричард Столлман включил nano в список официальных GNU-программ, и с тех пор редактор прочно поселился в каждом Linux-дистрибутиве.

Файл .nanorc: точка, где начинается уют

Все настройки nano хранятся в файле ~/.nanorc. Это ваша личная конфигурация, где можно адаптировать работу с ним под себя.

Если его нет в текущем каталоге (проверьте командой ls -la!), то просто создайте его:

touch ~/.nanorc
nano ~/.nanorc

Основные настройки: комфорт с первых строк

Чтобы nano стал по-настоящему удобным, достаточно нескольких строк в ~/.nanorc. Эти настройки не превращают редактор в чудо-IDE, но делают его более отзывчивым и тёплым в повседневной работе.

Нумерация строк и отступы

set linenumbers
set tabsize 4
set autoindent
set tabstospaces

Теперь у вас есть номера строк, удобные отступы и автоматическое выравнивание при переходе на новую строку. Nano будет использовать пробелы вместо табов - полезно при работе с YAML и Python.

Управление курсором и прокруткой

set smooth
set mouse
set positionlog
set rebinddelete
set rebindkeypad
  • smooth делает прокрутку плавной;

  • mouse позволяет ставить курсор щелчком, выделять текст с Shift и даже устанавливать метку двойным кликом;

  • positionlog запоминает, где вы остановились, и при следующем открытии файла возвращает курсор на то же место;

  • rebinddelete и rebindkeypad помогают корректно обрабатывать клавиши Delete, стрелки и NumPad - особенно полезно при работе через SSH или в графических терминалах вроде iTerm2, XTerm или Windows Terminal.

Перенос длинных строк

set softwrap
set atblanks

Эти параметры делают чтение и редактирование длинных строк комфортным:
nano переносит текст не посередине слова, а по пробелам - особенно удобно в Markdown и конфигурациях.

Визуальная ориентация

set indicator

indicator добавляет тонкий вертикальный «скроллбар» справа - помогает понять, где вы находитесь в длинном файле, без прокрутки наугад.

Поиск и история

set historylog
set casesensitive
set regexp

Nano будет помнить последние запросы поиска и замены, различать регистр и - при включённой опции regexp - позволит использовать регулярные выражения для поиска и замены (Ctrl + \).

Пров��рка орфографии и интеграция с внешними утилитами

Nano поддерживает орфографию, но не навязывает встроенный инструмент - можно выбрать любой внешний, например aspell или hunspell.

set speller "aspell -x -c"

Теперь при нажатии Ctrl + T nano запустит проверку орфографии через aspell. Удобно, если вы ведёте заметки, документацию или статьи прямо в терминале.

Резервные копии и безопасность

Чтобы не потерять изменения, достаточно включить резервное копирование:

set backup
set backupdir "~/.nano_backups/"

Теперь старые версии файлов будут сохраняться отдельно - без бардака в текущих каталогах. Отлично подходит для редактирования конфигов на сервере, где каждое изменение может быть критичным.

Форматирование и автоперенос строк

Nano может автоматически переносить строки при достижении определённой длины:

set fill 80
set breaklonglines

Это превращает nano в аккуратный инструмент для написания документации, README или Markdown - файлов, текст всегда будет выглядеть ровно и читаемо.

Режим только чтения

Если вы часто открываете системные конфиги и боитесь случайно что-то стереть, можно включить защитный режим:

set view

Редактор откроет файл в режиме просмотра, без возможности вносить изменения - чтобы редактировать, нужно будет запустить nano -w filename.

Подсветка синтаксиса: nano тоже может быть красивым

Nano умеет подсвечивать код для десятков языков, просто об этом мало кто знает. В
/usr/share/nano/ лежат готовые файлы вроде python.nanorc, html.nanorc, bash.nanorc. Их можно подключить выборочно или все сразу:

include "/usr/share/nano/python.nanorc"
include "/usr/share/nano/html.nanorc"
include "/usr/share/nano/bash.nanorc"

Если добавить строку

include "/usr/share/nano/*.nanorc"

- nano автоматически активирует подсветку для всех известных языков.

Темизация nano

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

set titlecolor white,black
set statuscolor brightcyan,black
set errorcolor brightred,white
set selectedcolor black,cyan
set numbercolor green,black

Можно пойти дальше - создать тему под себя и подключать её как отдельный файл:

include "~/.nano/themes/dark.nanorc"

А если вы любите светлую схему, просто инвертируйте фон и подберите мягкие оттенки.
Nano поддерживает 16 базовых цветов, а в современных терминалах - и 256-цветные палитры.

Переназначение клавиш: делаем nano ещё удобнее

Nano позволяет переназначать горячие клавиши под свои привычки. Это делается с помощью команд bind и unbind прямо в .nanorc.

Формат простой:

bind ^S writeout main
unbind ^K main

Первая строка назначает Ctrl+S для сохранения файла (вместо стандартного Ctrl+O).
Вторая убирает действие Ctrl+K в основном меню.

main - это контекст (меню), в котором действует команда. Можно также использовать all, чтобы переназначение работало везде.

Примеры полезных переназначений

Комбинация

Функция

Пример команды в .nanorc

^S

Сохранить файл

bind ^S writeout main

^Q

Выйти из редактора

bind ^Q exit main

M-U

Отменить последнее действие

bind M-U undo main

M-R

Повторить действие

bind M-R redo main

^F

Поиск

bind ^F whereis all

^H

Подсветить помощь

bind ^H help all

F2

Сохранить файл (альтернатива)

bind F2 writeout main

Некоторые клавиши (стрелки, Home/End, PgUp/PgDn) не всегда можно переназначить, потому что они обрабатываются терминалом напрямую.

Кроме того, можно назначать комбинации для конкретных меню - например, в справке или окне поиска:

bind ^N nextpage help
bind ^P prevpage help

Теперь в меню помощи (Ctrl + G) можно листать страницы привычными клавишами.

Нетривиальный nano

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

Вставка вывода команд прямо в файл

Команда Ctrl + R (вставить файл), а затем Ctrl + X позволяет вставить результат shell-команды. Например:

Ctrl + R → Ctrl + X → date

вставит текущую дату в документ. Так можно подставлять результаты ls, git log, шаблоны из скриптов - и вообще использовать nano как “терминал в терминале”.

Работа с макросами (да, nano умеет!)

С версии 6+ nano поддерживает запись макросов. Это неочевидно, но очень полезно, если нужно повторять однотипные действия.

  • Начать запись: Alt + ( (левая скобка)

  • Закончить запись: Alt + )

  • Воспроизвести: Alt + ^

Можно, например, за пару секунд проставить одинаковые комментарии или форматировать список.

Итог

Nano не притворяется IDE и не требует зубрёжки, но умеет гораздо больше, чем принято думать. Он тихий, честный и гибкий - можно работать с орфографией, автоматическими переносами, резервными копиями и даже создавать свои подсветки. Когда мне нужно просто открыть файл и что-то быстро поправить, я не запускаю Vim - я запускаю nano.

Если у вас есть дополнения к статье или пару полезных настроек, буду благодарен, если поделитесь в комментариях.

Комментарии (1)


  1. sT331h0rs3
    07.11.2025 08:38

    Стоит дополнительно упомянуть до сих пор полезный, хоть и немного устаревший https://github.com/scopatz/nanorc.