Основные команды текстового редактора nano
Итак, в вашей жизни случилось так, что вам нужно отредактировать какой-нибудь файл конфигурации, заполнить комментарий коммита git
или написать подобную заметку с использованием разметки markdown
. И в вашем распоряжении оказался редактор nano
.
Прежде всего сохраняйте спокойствие! Дело в том, что в редакторе nano
по умолчанию в нижней части экрана отображаются подсказки клавиатурных сочетаний для выполнения различных действий в зависимости от контекста и режима работы редактора. Именно поэтому в его использовании нет ничего сложного.
Условные обозначения, используемые для клавиатурных команд:
M-
– удержание Alt
или одинарное нажатие Esc
;
^
– удержание Ctrl
или двойное нажатие Esc
.
Некоторые действия помимо клавиатурных сочетаний доступны по нажатию на функциональные клавиши.
Многие клавиатурные сочетания для выполнения действий можно быстро уточнить, нажав ^G
или просто нажав клавишу F1
. Там же приводится информация об условных обозначениях.
Стоит отметить, что ряд клавиатурных сочетаний могут не работать, если они конфликтуют с клавиатурными сочетаниями окружения, в котором запущен nano
. Например, в эмуляторе терминала konsole
уже занята комбинация Alt+6
(т.е. M-6
в nano
) для переключения на 6-ю вкладку. Поэтому в данном случае, чтобы использовать именно эту комбинацию (без переобозначения её в nano
) можно освободить её использование в konsole
. Также некоторые сочетания клавиш могут конфликтовать с сочетаниями клавиш midnight commander
, если nano
запущен внутри его рабочего окружения. В этом случае придётся использовать альтернативный вариант вызова действия в nano
.
Если вы запустили nano
без указания имени файла как параметра запуска, то для добавления содержимого файла в текущий буфер экрана используется команда ^R
. Чтобы открыть файл в новом буфере (см. также команду set multibuffer
), находясь в этом режиме можно воспользоваться командой M-F
. Файловый браузер в этом режиме будет открываться по нажатию ^T
. Открыть файл можно и нажатием клавиши Insert
.
- Переключаться между буферами экрана можно с помощью команд
M-.
(илиM-▸
) к следующему иM-,
(илиM-◂
) к предыдущему.
Не забывайте, если что, посматривать в меню с подсказками в нижней части экрана.
- Закрыть текущий файл и выйти из редактора можно с помощью команды
^X
(илиF2
), если файл был изменён, то появится запрос на сохранение изменений; - Быстро сохранить изменения в текущем файле можно командой
^S
. - Сохранение текущего файла с запросом на указание имени файла выполняется командой
^O
(илиF3
).
Непосредственно при редактировании текста, помимо прочего, доступны следующие действия:
- начать/отменить выделение фрагмента теста –
M-A
(или^6
); - копировать текущую строку или выделенный фрагмент в буфер хранения –
M-6
; - вырезать и поместить текущую строку или выделение в буфер хранения –
^K
(F9
); - удалить строку без помещения в буфер хранения –
M-Del
; - вставить содержимое из буфера хранения в позицию курсора –
^U
(F10
); - отменить действие Undo (
M-U
) и «отменить отмену» действия Redo (M-E
); - выполнить команду и вставить результат выполнения в текст –
^T
; - поиск
^W
(F6
) в тексте, нажатиеM-R
в этом режиме включает/отключает режим использования регулярных выражений; - перейти к следующему следующему (
M-W
) или предыдущему (M-Q
) вхождению искомой строки; - поиск с заменой –
^\
(M-R
), нажатие или повторное нажатиеM-R
включает/отключает режим использования регулярных выражений; - закомментировать/раскомментировать текущую строку или выделенный блок –
M-3
.
Дополнительными полезными командами (см. быструю справку F1
) могут оказаться:
- отключение/включение подсветки синтаксиса (
M-Y
); - включение/отключение отображения пробельных символов (
M-P
); - включение/отключение режима преобразования символов табуляции в пробелы (
M-O
).
Не все об этом подозревают, но у nano
есть файл конфигурации, в котором можно указать дополнительные настройки, чтобы они всегда применялись при запуске редактора. Список допустимых команд настроек и описания к ним приводятся в ман-странице man nanorc
, там же сообщается, что глобальные настройки хранятся в файле /etc/nanorc
, а пользовательские в файлах ~/.nanorc
, $XDG_CONFIG_HOME/nano/nanorc
или ~/.config/nano/nanorc
.
Среди прочих полезных можно выделить несколько из них (в скобках указана команда быстрого включения/отключения соответствующего режима):
-
set constantshow
– всегда показывать позицию курсора в строке состояния (M-C
); -
set multibuffer
– открывать по умолчанию новый файл в новом буфере; -
set linenumbers
– отображать номера строк в колонке слева (M-N
); -
set indicator
– отображать справа индикатор полосы прокрутки, чтобы видеть положение отображаемого текста относительно всего буфера; -
set tabstospaces
– преобразовывать нажатияTab
в пробелы (M-O
); -
set tabsize <column_namber>
– задать количество колонок, используемых для символа табуляции (по умолчанию 8); -
set autoindent
– автоматическое выравнивание новой строки (M-I
); -
set smarthome
– при нажатии клавишиHome
курсор возвращается в позицию перед первым непробельным символом, вместо начала строки (M-H
); -
set guidestripe <column_number>
– отображать вертикальную границу в заданной колонке (для задания цветов см. описание командыset stripecolor
); -
set minibar
– скрыть заголовок и отображать минибар внизу экрана с информацией об имени файла и положении курсора относительно всего текста.
Update
Небольшое дополнение.
Редактор nano
не поддерживает сортировку строк, но её всё равно можно выполнить для выделенных строк. Для это потребуется произвести следующие действия:
- выделить нужный блок строк командой
M-A
; - вызвать режим «вставки результата выполнения внешней команды»
^T
; - ввести команду
|sort
(можно добавить свои параметры) и выполнить её.
Да, это просто передача выделенного текстового блока на вход конвейера для выполнения команды сортировки.