Форумы

Geek's Notes Universe :: Форумы :: Жизнь во мраке

Nano: Учим Nano как надо!

root
[ Истинный ДАО ]
Сообщений: 493




Речь идёт о текстовом редакторе nano в Linux.

Я не люблю nano и предпочитаю vim. Однако, в отсутствии vim, выбирая между vi и nano, я всё-таки предпочту nano, ибо как говорится в старой поговорке, «у vi есть два режима: бибикать и всё портить».

Кроме того, идёт активная замена vi на nano во многих дистрибутивах. Например, в новых версиях Debian и Ubuntu по-умолчанию vi устанавливается в самом куцем виде. А главное, его больше нет в busybox install/initrd этих ОС, что однозначно заставляет задуматься об изучении nano, не из любви к нему, а по необходимости.

Я понимаю, что сидеть и зубрить список комбинаций кнопок бесполезно, так что вместо этого я думаю сделать маленькие nano-уроки — по 8 комбинаций или фич за урок (я и сам их планирую изучать по мере публикации).

Nano не имеет «режима команд» как vim, и этим похож на oldschool-редакторы из консоли DOS/Windows (NC, Far Manager, DN, hiew/biew, внезапно втесавшегося в список mcedit и т.д.). Все команды отдаются нажатием комбинаций клавиш — функциональными кнопками или комбинацией Ctrl-буква, Alt-буква.

Важное отличие от 'generic editor' — это поддержка эмуляции Ctrl'а и Alt'а.


Alt эмулируется одинарным нажатием на Esc, Ctrl — двойным. Вместо Alt-X можно набрать Esc X, вместо Ctrl K можно набрать Esc Esc K.

Сначала очевидные комбинации (не зачитываем из за «выученные»)
Стрелки вверх-влево-вправо-вниз делают ровно то, что должны.
Начало строки — Home
Конец строки — End
Страница вниз — PgDn
Страниц вверх — PgUp

На этом очевидности заканчиваются и, собственно, начинаются наши сегодняшние 8 комбинаций:

На слово вперёд — Ctrl-Space
На слово назад — Alt-Space (курсор встаёт в начале слова)
В начало файла — Alt-| или Alt-\ (короче, Alt- и «эта» кнопка)
В конец файла — Alt-/ или Alt-? (аналогично, Alt «эта» кнопка)
До первой пустой строки вниз — Alt-0 (или Alt-))
До первой пустой строки вверх — Alt-9 (или Alt-()
(в терминах nano текст, отделённый пустыми строками называется «параграф», так что последние две команды называются «предыдущий параграф», «следующий параграф»)

Включить выключить перенос строк — Alt-L
Переход на строку с указанным номером — Alt-G


Комбинации для запоминания: undo/redo, поиск/замена.

Отмена действий по-умолчанию не работает и требует запуска редактора с опцией «поддержка отмены» (да, nano по-умолчанию не поддерживает undo). Ключ командной строки -u.

nano -u sometext.

После этого начинают работать команды:

Alt-U — undo
Alt-E — redo.

Заметим, что в справке (Ctrl-G) оно появляется тоже, только если запустить nano с опцией -u.

Если nano запущен без -u, то единственной формой undo является отмена вырезанных по Ctrl-K строк обратным их вставлением — Ctrl-U.

С поиском чуть лучше.

поиск — Ctrl-W Хотя заявлена поддержка регэкспов, мне её не удалось добиться, так что поиск просто по подстроке.
Повторный поиск (без появления диалога) — Alt-W

Замена Ctrl-\

Повторной замены нет, так как при замене выдаётся запрос «да/нет, отмена, всё».

Многобуфферность (возможность иметь несколько открытых файлов).

Включается командой Alt-F. После этого работают кнопки Alt-< и Alt-> (или они же без шифта: Alt-., Alt-, (альт точка, альт запятая)).

Последняя фича: возможность вводить текст по коду: Esc 255 — вставляет заданный десятичный код (255), а для ввода младших кодов ASCII можно использовать комбинацию Alt-V нужная кнопка, например, Alt-V Ctrl-Z.

[ Редактирование Sun Oct 24 2010, 04:11PM ]

root
[ Истинный ДАО ]
Сообщений: 493
NANO: работа с выделением, копирование и удаление кусков текста.

Для понимания принципов команд работы с текстом нужно сначала понять принцип выделения текста. Он осуществляется либо мышью, либо с клавиатуры. С клавиатуры выделение происходит так: сначала отмечается начало выделение: Alt-A или Ctrl-^. Далее следует навигация — и до момента выполнения действия над текстом в буффере, выделение сохраняется (обратите внимание, выделение сохраняется даже при вводе текста, в этом оно сильно отличается от выделения в gui-приложениях windows и ближе к persistent blocks в TurboC, DN и соответствующей опции Far Manager'а).

Обратите внимание, применимы все функции навигации, включая переход по номеру строки или поиск (в следующих выпусках).

Далее выделенный текст можно удалить или скопировать в буффер. Это делает комбинация Ctrl-K (или F9).

Выделенный текст можно скопировать в буффер обмена — комбинация Alt-6 (да, мы ЛЮБИМ nano).

Далее мы можем вставить текст из буффера обмена — Ctrl-U или F10. Обратите внимание — в подсказке снизу написана неправда, это не отмена удаления, это вставка.


Кроме этого, для удобства редактирования, Ctrl-K при отсутствии выделения удаляет строку. Либо целиком, либо от курсора до конца строки. Поведение переключается комбинацией Alt-K (по-умолчанию стоит режим удалять строку целиком, а Alt-K переключает его туда-сюда).

Обратите внимание — удалённая строка в буффере, так что её можно вставить с помощью Ctrl-U.

Ещё одна комбинация для лентяев — Alt-T, стирающая всё от курсора и до конца файла (команда trunkate).

Для вставки текста из другого файла используется кнопка Ins (думаю, все пользователи vim хорошо знают поведение этой кнопки в nano).
root
[ Истинный ДАО ]
Сообщений: 493
Для установки NANO в качестве вашего дефолтного редактора для вашей машины

По умолчанию в Ubuntu стоит vi (Помните про два режима его работы? )

* Для смены редактора в текущей сессии выполните следующее:
export VISUAL=/usr/bin/nan0

* Для того чтобы этот редактор сохранился для текущего юзера, добавьте следующую строку в ваш /home/user/.bash_profile

export VISUAL=/usr/bin/nan0


* Для того чтобы у всех пользователей сменить редактор, добавьте эту строку в /etc/profile

[ Редактирование Sat Oct 23 2010, 01:41AM ]

Модераторы: root, Frizze, andrey, Bender

<< Предыдущая тема | Следующая тема >>

Перейти:     Наверх