linux view-edit

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 [ОПЦИИ] [[+СТРОКА,СТОЛБЕЦ] ФАЙЛ]...

Компоненты команды:

Основные горячие клавиши

Ctrl+S сохранить файл
Ctrl+X выйти из nano
Ctrl+W поиск
Ctrl+\ поиск и замена
Ctrl+K вырезать строку
Ctrl+U вставить строку
Ctrl+C показать позицию курсора
Ctrl+G справка
Ctrl+A начало строки
Ctrl+E конец строки
Ctrl+Y страница вверх
Ctrl+V страница вниз
Alt+6 скопировать строку
Alt+U отменить (undo)
Alt+E повторить (redo)
Ctrl+_ перейти к строке/столбцу
# Открыть или создать файл nano file.txt nano /etc/hosts # Открыть на строке 42 nano +42 script.sh # Открыть на строке 10, столбце 5 nano +10,5 code.py # Открыть несколько файлов (переключение: Alt+< и Alt+>) nano file1.txt file2.txt

Флаги и опции

Флаг Описание Пример
-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"

Советы и предупреждения

Совет: установить nano редактором по умолчанию
Многие программы (git, crontab, visudo) открывают системный редактор по умолчанию. Чтобы они открывали nano, добавьте в ~/.bashrc: export EDITOR=nano и export VISUAL=nano. После этого git commit без -m, crontab -e и другие команды будут открывать nano.
Совет: Ctrl+O vs Ctrl+S для сохранения
Ctrl+O (Write Out) сохраняет файл с возможностью изменить имя файла перед сохранением — удобно для «Сохранить как». Ctrl+S сохраняет без запроса (добавлен в nano 2.7). В современных версиях оба варианта работают.
Совет: Alt+/ и Alt+\ для быстрой навигации
Alt+/ переходит к концу файла (аналог G в vim), Alt+\ — к началу файла (аналог gg). Быстрее, чем листать страницами.
Предупреждение: Ctrl+C не выходит из nano
В отличие от большинства терминальных программ, Ctrl+C в nano только показывает текущую позицию курсора. Для выхода — Ctrl+X. Если забыли и нажали Ctrl+C несколько раз — ничего страшного не произойдёт, просто нажмите Ctrl+X.
Предупреждение: не путайте символ ^ в подсказках
В нижней панели nano символ ^ обозначает клавишу Ctrl, а M- обозначает Alt (Meta key). Так, ^X = Ctrl+X, а M-U = Alt+U. На некоторых системах вместо Alt работает клавиша Esc (нажать и отпустить, затем нажать букву).