Конспект по пользованию редактором Nano (Linux)

Те, кому приходится много и профессионально использовать данную ОС, обычно предпочитают Vim или Emacs. Но эти два редактора требуют долгого времени на обучение и предоставляют функционал, избыточный для большинства пользователей. К тому же, некоторые программы для ввода небольших порций информации безальтернативно запускают Nano, так что понять базовые приёмы работы в нём будет полезным даже тем, кто решил специализироваться на vim/Emacs.

Основные ссылки: wiki (eng), wiki (ru), nano-editor.org (documentation).

В репозиториях дистрибутивов по умолчанию обычно находится старая версия редактора. К примеру, на момент написания этих строк репозитории Ubuntu и Linux Mint содержит Nano v2.5.3, в то время, как на сайте создателей уже выложена более функциональная версия 2.9.4. Устанавливать придётся компиляцией из исходников, но поскольку у редактора нет сложных зависимостей и привередливости, то это относительно лёгких случай. И если вы никогда компиляцие программы из исходников не занимались, то отличная возможность узнать новое.

Инструкция по установке последней версии

 

Nano для ввода команд использует две командные клавиши: Crtl (обозначаемую как '^') и "мета" (обозначаемую как 'M-', по умолчанию в её качестве выступает Alt). Ctrl по умолчанию может быть проэмулирована двойным нажатием на Esc, а "мета" однократным.

 

Базовые операции:

^G - Лист горячих клавиш.  ("Get help")
^X - Выход. ("Exit")
^O - Сохранить файл с возможностью с возможностью некоторых дополнительных действий. К примеру, сохранить под другим именем или в DOS/Mac кодировках. ("Write Out")
^S - Сохранить файл без запроса дополнительных опций.
^R - Вставить в текущий файл содержание другого файла. ("Read File")

 

Редактирование:

M-A = ^6 - Начать выделение текста. ("Mark Text")
M-6 - Копировать выделенный текст.
^K - Вырезать выделенный текст. Если выделения нет, то будет вырезана вся строка. ("Cut Text") - Поведение команды можно модифицировать через M-K.
M-T - Вырезать текст от текущего курсора до конца файла.
^U - Встативть текст из буфера ("Uncut Text")
M-U - Отмена последнего действия ("Undo") - Существует баг, что история изменений забывается после использования команды выравнивания обзаца ^J, по крайней мере в версии 2.9.4.
M-R - Повторно выполнить только что отменённое действие ("Redo")

^W - Поиск текста ("Where Is")
M-W - Поиск текста далее ("Where Is Next")
^\ - Замена ("Replace")

^J - выровнять строки в текущем абзаце по ширине окна ("Justify") - Существует баг, что операция не может быть отменена и не могут быть отменены действия, происходившие до неё. По крайней мере в nano v2.9.4.
M-J - выровнять строки по всему файлу
M-3 - Cделать строку комментарием / раскомментировать строку.

M-: - Начать / остановить запись макроса. - Функционал работы с макросами появился в версии 2.9.0
M-; - Воспроизвести макрос.

 

Навигация

^F = Right - Вперёд на 1 символ. ("Forward")
^B = Left - Назад на 1 символ. ("Backward")

^Space = Ctrl-Right - Вперёд на 1 слово.
M-Space = Ctrl-Left - Назад на 1 слово. - Сочетание Alt-Space обычно используется для вызова меню окна, так что здесь имеет место конфликт клавиш.

^E = End - Конец строки.
^A = Home - Начало строки. - Поведение команды можно модифицировать через M-H.

^N = Down - Следующая строка. ("Next line")
^P = Up - Предыдущая строка. ("Previous line")

M-) = M-0 - Переход на позиция сразу за окончанием параграфа; затем на следующий параграф.
M-( = M-9 - Начало параграфа; затем предыдущий параграф. - де-факто = M-7 = ^Up

M-8 = ^Down - Следующий блок текста. Более точно, начало следующего параграфа.
M-7 = ^Up - Предыдущий блок текста. Более точно, начало параграфа; затем предыдущий параграф. - де-факто = M-( = M-9

^V = PgDn - Следующая страница. ("Next Page")
^Y = PgUp - Предыдущая страница. ("Previous Page")

M-/ = Ctrl-End - Конец файла. ("Last Line")
M-\ = Ctrl-Home - Начало файла. ("First Line")


M-+ - Скроллинг текста вниз при сохранении текущего положения курсора.
M- - Скроллинг текста вверх при сохранении текущего положения курсора.

^_<#> - Переход на строку с номером <#> ("Go To Line")
^_<#>,<##> - Переход на строку с номером <#> и в ней на столбец с номером <##>

M-] - Переход на парную скобку. ("To Bracket")

 

Некоторые действия

^C - Текущая позиция каретки ввода. ("Current Position")
Отображение текущей позиции курсора в редакторе Nano
^T - count the number of words, lines and characters.
Подсчёт слов, строк и символов в редакторе Nano
^L - Перерисовать текущее окно программы. (Если появились дефекты отображения содержимого окна, что в Nano периодически случается.)
^T - Проверить правописание. ("To Spell") - Чтобы использования функции, необходимо доустановить в систему пакет spell.

 

Режимы работы редактора

1-й столбец опция запуска редактора;
2-й  расширенное название опции; обозначение опции в файле конфигурации;
3-й — описание;
4-й — горячие клавиши, позволяющие переключить режим в процессе работы;
По умолчанию все данные режимы отключены.

-x --nohelp Не показывать две нижние строки с подсказками по наиболее часто используемым горячим клавишам.
(по умолчанию режим отключен и подсказки показываются)
M-X
-c --constantshow Постоянно отображать позицию каретки в файле. M-C
-O --morespace Рабочее поле текстового редактора увеличивается на 1 строку сверху. Больше рабочего места, хотя это менее эстетично. M-O
-S --smooth Плавный скроллинг: текст перематывается строка за строкой вместо скачкообразной перемотки большими кусками M-S
-$ --softwrap Включение мягко переноса строк (soft-wrapping). При этом возможны глюки с отображением символов. M-$
-I --linenumbers Показ номеров строк. M-#
  --whitespacedisplay Отображать символы пробела и табуляции M-P
  --nosyntax Не отображать синтаксическую раскраску кода.
(По умолчанию режим отключен и раскраска кода происходит. Но только если файлы раскраски подлючены.)
M-Y
-A --smarthome Изменение режима клавиши Home. Эффект заметен только в случае начала строки с пробелов или символов табуляции. Когда ремим включён, нажатие на Home приводит к перескоку каретки ввода на первый непустой символ. Если каретка уже на этой позиции, то перескакивает на самое начало строки. M-H
-i --autoindent Автоотступ новой строки на величину отступа предыдущей. M-I
-k --cutfromcursor Изменение режима вырезания строки (^K) в случае отсутствия выделения текста. Когда режим включён, вырезается подстрока от текущего положения курсора до конца строки. Иначе вырезается вся строка полностью. M-K
-w --nowrap Отключение режима автоматической разбивки длинных строк на короткие (hard-wrapping).
(по умолчанию режим отключен и строки автоматически разбиваются)
M-L
-E --tabstospaces Печатаемые знаки табуляции замещаются пробелами.
(Уже имеющиеся операция не затрагивает)
M-Q
-B --backup Создание резервной копии в момент сохранения. Резервная копия помечается символом тильда (~) в конце её названия. M-B
-m --mouse Включить поддержку мыши. В этом режиме можно менять положение каретки ввода посредством щелчка мыши, устанавливать место начала выделения через двойной щелчок и запускать мышкой команды из панели подсказок. Текст по-прежнему можно выделять постредством удержания клавиши Shift во время перетаскивания мыши. M-M
-v --view Открыть файл в режиме только для чтения.  
-V --version Показать версию редактора.  

Другие переключатели режимов можно отыскать в документации на страницах "Man Page" и в "Online Manual".

Для того, чтобы редактор Nano всегда запускался с определёнными режимами, можно отредактировать файл /etc/nanorc или скопировать его изменённую версию в ~/.nanorc либо ~/.config/nano/nanorc.
Личный выбор автора данных строк:
set morespace
set mouse
set smooth
set nowrap
set smarthome
set nohelp

Для того, чтобы иметь синтаксическую раскраску кода, следует подключить соответсвующие файлы цветовых схем для различных языков. Они имеют расширение *.nanorc и обычно располагаются в
usr/local/share/nano/ или
/usr/share/nano/
После их нахождения добавьте в конфигурационный файл строчку
include /usr/local/share/nano/*.nanorc (или выберите только нужные вам языки).
Однако качество дефолтных цветовых схем низкое. Лучше воспользовататься альтернативными вариантами с github.com/nanorc/nanorc.

 

Другие статьи, описывающие приёмы работы с редактором:
The Beginner’s Guide to Nano (howtogeek.com, 2015)
A Beginners Guide To The Nano Editor (lifewire.com, 2017)
Linux Nano editor explained for beginners (10 examples) (howtoforge.com)

Наиболее полная информация находится в официальной документации на nano-editor.org>documentation , по мере выхода новых версий она обновляется.

Add new comment

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.