nano
Простой и дружелюбный консольный текстовый редактор с подсказками горячих клавиш
Описание
nano — консольный текстовый редактор, разработанный как свободная замена редактора pico (часть пакета Pine mail). Первая версия выпущена в 1999 году Крисом Аллегреттой (Chris Allegretta). Название расшифровывается как «Nano's ANOther editor» (рекурсивный акроним в духе GNU). Сегодня nano входит в состав большинства дистрибутивов Linux по умолчанию.
В отличие от vi/vim, nano не использует модальный интерфейс — он работает в режиме постоянного ввода текста, а все команды выполняются через комбинации с клавишей Ctrl. Список доступных горячих клавиш всегда виден в нижней части экрана (^X означает Ctrl+X), что делает nano идеальным выбором для начинающих и для быстрого редактирования конфигов без изучения сложного редактора.
Несмотря на репутацию «простого» редактора, современные версии nano поддерживают подсветку синтаксиса для десятков языков программирования, мягкое выравнивание, несколько буферов, возможность открывать несколько файлов, автоотступ и многое другое. Для задач системного администрирования и начального программирования nano полностью достаточен.
Синтаксис
Компоненты команды:
- nano — имя команды
- [ОПЦИИ] — необязательные флаги настройки поведения
- +СТРОКА,СТОЛБЕЦ — необязательно: открыть файл и перейти к указанной позиции
- ФАЙЛ — файл для редактирования; если файл не существует — будет создан при сохранении
Основные горячие клавиши
Флаги и опции
| Флаг | Описание | Пример |
|---|---|---|
-l |
Показывать номера строк слева. Удобно при редактировании кода. | nano -l script.py |
-c / --constantshow |
Постоянно отображать позицию курсора (строка, столбец, символ) в строке статуса. | nano -c file.txt |
-i |
Автоматический отступ: новая строка будет иметь тот же отступ, что и предыдущая. Полезно при написании кода. | nano -i code.py |
-t |
При выходе сохранять без запроса подтверждения (как :wq в vim). Удобно в скриптах. | nano -t file.txt |
-v / --view |
Режим только для чтения. Файл можно просматривать, но не изменять. | nano -v /etc/passwd |
-w |
Отключить перенос длинных строк. По умолчанию nano переносит строки по ширине терминала. | nano -w config.json |
-m |
Включить поддержку мыши для позиционирования курсора кликом. | nano -m file.txt |
-u |
Включить undo/redo. В старых версиях nano эта функция была отключена по умолчанию. | nano -u file.txt |
-Y syntax |
Задать синтаксис для подсветки вручную (python, c, html, sh и др.). | nano -Y python script.py |
-B |
При сохранении создавать резервную копию файла с расширением ~. |
nano -B config.yml |
-E |
Преобразовывать символы табуляции в пробелы при вводе. Удобно для Python, где смешение Tab и Space недопустимо. | nano -E script.py |
--syntax=name |
Длинная форма для явного указания синтаксиса подсветки. | nano --syntax=json data.json |
Паттерны использования
Быстрое редактирование конфига
Самый частый сценарий: изменить системный конфиг:
# Открыть конфиг с sudo sudo nano /etc/hosts sudo nano /etc/ssh/sshd_config # Найти нужную строку: Ctrl+W # Ввести поисковый запрос и Enter # Внести изменения # Сохранить: Ctrl+S или Ctrl+O, Enter # Выйти: Ctrl+X
Поиск и замена
Замена текста по всему файлу:
# Открыть диалог замены: Ctrl+\ # Ввести: что найти # Enter # Ввести: на что заменить # Enter # Варианты: # Y (Yes) — заменить это вхождение # N (No) — пропустить # A (All) — заменить все вхождения # Ctrl+C — отменить # Регистронезависимый поиск: Alt+C в диалоге
Вырезание и вставка блоков
Работа с несколькими строками через буфер обмена nano:
# Выделить блок текста: # 1. Поставить курсор на начало # 2. Ctrl+6 (или Alt+A) — начать выделение # 3. Перемещать курсор стрелками # Вырезать выделенное: Ctrl+K # Скопировать выделенное: Alt+6 # Вставить: Ctrl+U # Вырезать всю строку (без выделения): # Ctrl+K — вырезать строку целиком
Редактирование Python-скрипта
Настройки nano для комфортной работы с Python:
# Открыть с удобными флагами для Python nano -liE script.py # -l — номера строк # -i — автоотступ # -E — Tab → пробелы # Или добавить в ~/.nanorc: # set linenumbers # set autoindent # set tabstospaces # set tabsize 4 # Применятся автоматически
Создание нового файла и heredoc-альтернатива
Создать файл в nano или через конвейер:
# Интерактивное создание файла nano new_script.sh # — пишем содержимое # Ctrl+S — сохранить # Ctrl+X — выйти # Файл будет создан только при сохранении! # До этого он не существует на диске # Сделать исполняемым после создания: chmod +x new_script.sh
Настройка ~/.nanorc
Персональная конфигурация nano для постоянных удобств:
# Открыть конфиг nano nano ~/.nanorc # Рекомендуемые настройки: set linenumbers # номера строк set autoindent # автоотступ set tabsize 4 # размер таба set tabstospaces # Tab → пробелы set mouse # поддержка мыши set constantshow # позиция курсора set nohelp # скрыть строку помощи (больше места) # Подключить подсветку синтаксиса: include "/usr/share/nano/*.nanorc"
Советы и предупреждения
Многие программы (git, crontab, visudo) открывают системный редактор по умолчанию. Чтобы они открывали nano, добавьте в
~/.bashrc: export EDITOR=nano и export VISUAL=nano. После этого git commit без -m, crontab -e и другие команды будут открывать nano.
Ctrl+O (Write Out) сохраняет файл с возможностью изменить имя файла перед сохранением — удобно для «Сохранить как». Ctrl+S сохраняет без запроса (добавлен в nano 2.7). В современных версиях оба варианта работают.
Alt+/ переходит к концу файла (аналог G в vim), Alt+\ — к началу файла (аналог gg). Быстрее, чем листать страницами.
В отличие от большинства терминальных программ, Ctrl+C в nano только показывает текущую позицию курсора. Для выхода — Ctrl+X. Если забыли и нажали Ctrl+C несколько раз — ничего страшного не произойдёт, просто нажмите Ctrl+X.
В нижней панели nano символ
^ обозначает клавишу Ctrl, а M- обозначает Alt (Meta key). Так, ^X = Ctrl+X, а M-U = Alt+U. На некоторых системах вместо Alt работает клавиша Esc (нажать и отпустить, затем нажать букву).