nnn (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
nnn
. Дата последней синхронизации: 14 октября 2021. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Ссылки по теме
File manager functionality (Русский)
Midnight Commander (Русский)
ranger
vifm
nnn
(стилизованно: n
3
) это компактный
файловый менеджер
для
терминала
, написанный на
Си
. Является очень гибким за счёт своей системы
плагинов
, которая абстрагирована от языка, например, плагин
(neo)vim
.
nnn
имеет встроенную функцию (раз)архивирования широко распространённых форматов, функцию анализа использования диска, средство нечёткого запуска приложений (неполное или чуть неправильно написанное имя) и средство множественного переименования.
nnn
поддерживает быстрый поиск
search-as-you-type
с
регексом
и навигацию
navigate-as-you-type
с непрерывной навигацией и авто-выделением. Кроме того поддерживаются контексты, закладки, сложные условия сортировки,
SSHFS
, множественные операции над выделенными объектами и другое.
Несмотря на свои возможности,
nnn
спроектирован быть простым в использовании и конфигурируемым через
переменные окружения
, нежели конфигурационные файлы.
Установка
nnn
распространяется как пакет
nnn
.
Использование
nnn
управляется не только как
vim
при помощи
hjkl
, но и при помощи стрелок. Для удобного использования (в отличие от vim) достаточно стрелок,
/
и
q
. Смотри справку через
?
в любой момент.
Конфигурация
nnn
конфигурируется через
переменные окружения
, обычно добавляемые в файл
~/.bashrc
. Дополнительную информацию о конфигурировании можно прочесть как в
nnn(1)
, так и
на вики в GitHub
.
Вот пример конфигурации
~/.bashrc
:
~/.bashrc
export NNN_BMS='d:~/Documents;u:/home/user/Cam Uploads;D:~/Downloads/'
export NNN_SSHFS="sshfs -o follow_symlinks" # заставляет sshfs следовать по символьным ссылкам
export NNN_COLORS="2136"                    # разные цвета для разных контекстов (см. man)
export NNN_TRASH=1                          # перемещение в корзину вместо удаления файлов (требуется
trash-cli
)
Примечание
Если запускаете
nnn
при помощи
nnn.desktop
из
среды рабочего стола
, он может не подхватить настройку из
.bashrc
. В таком случае, смотри статью
desktop integration
на вики в GitHub.
Самая полезная настройка из всех это
NNN_BMS
. Она позволяет выбрать
горячие клавиши
для указанных каталогов. Перемещение в директорию происходит по нажатию на
b
с выбранной буквой закладки. В примере выше требуется нажать клавиши
bD
, чтобы переместиться в каталог
~/Downloads
.
Советы и рекомендации
Список выделенных файлов
Получить список выделенных файлов можно при помощи
псевдонимов
. Создайте такой псевдоним:
~/.bashrc
alias ncp="cat ${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection} | tr '\0' '\n'"
Теперь можно использовать
ncp
для получения списка выделенных файлов и его передачи в другие программы через пайп.
Указание уровня вложенности оболочки
Когда используется
!
чтобы открыть командную оболочку в текущей директории (не запутайтесь в оболочках, которые запустили
nnn
, и которые запущенны из
nnn
) можно добавить такую строку, чтобы не запутаться:
~/.bashrc
[ -n "$NNNLVL" ] && PS1="N$NNNLVL $PS1"
Настройка добавляет N<уровень вложенности> перед каждым
приглашением
bash
.
Выход и cd (Ctrl-G)
Обычно, когда выходите из
nnn
, вас переносит в директорию, из которой запустили менеджер, однако если настроить
cd-on-quit
, то при выходе оболочка уже будет находится в последней выбранной в
nnn
директории.
Для настройки добавьте в ваш
.bashrc
/
.zshrc
:
~/.bashrc или ~/.zshrc
if [ -f /usr/share/nnn/quitcd/quitcd.bash_zsh ]; then
    source /usr/share/nnn/quitcd/quitcd.bash_zsh
fi
Подключённый скрипт создаст команду
n
(точнее, bash-функцию
n
) — используйте её вместо команды
nnn
.
Смотрите также статью
configure cd on quit
на вики в GitHub.
Добавление плагинов
Чтобы добавить плагин, следует добавить файл плагина в
${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins/
. Например, можно создать свой запускаемый
шелл
-скрипт
${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins/git-changes
#!/usr/bin/env sh
 git log -p -- "$@"
Скрипт срабатывает по нажатии клавиши
R
и выбору
git-changes
, который покажет удобный журнал изменений
git
репозитория для конкретного файла вместе с кодом для удобного код-ревью.
Смотрите также
репозиторий на GitHub
официальный гайд по настройке
Введение в nnn
— YouTube