Долгое время я пользовался mc, но он всё же не казался лично для меня достаточно удобным, потому я перешёл на yazi.
sudo apt install -y curl file
curl -fsSL https://yazi-rs.github.io/builds/yazi-keyring.gpg \
| sudo tee /usr/share/keyrings/yazi-keyring.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/yazi-keyring.gpg] https://yazi-rs.github.io/builds/ stable main' \
| sudo tee /etc/apt/sources.list.d/yazi.list >/dev/null
sudo apt update
sudo apt install -y yazi
Запуск:
yazi
Указать micro как редактор
Открыть настройки bash:
micro ~/.bashrc
Добавить:
export EDITOR=micro
export VISUAL=micro
Применить:
source ~/.bashrc
Windows-подобные сочетания клавиш
Создать каталог с конфигом:
mkdir -p ~/.config/yazi
micro ~/.config/yazi/keymap.toml
Добавить в него:
# Копировать
[[mgr.prepend_keymap]]
on = "<C-c>"
run = "yank"
desc = "Копировать"
# Вырезать
[[mgr.prepend_keymap]]
on = "<C-x>"
run = "yank --cut"
desc = "Вырезать"
# Вставить
[[mgr.prepend_keymap]]
on = "<C-v>"
run = "paste"
desc = "Вставить"
# Удалить в корзину
[[mgr.prepend_keymap]]
on = "<Delete>"
run = "remove"
desc = "Удалить в корзину"
# Удалить безвозвратно
[[mgr.prepend_keymap]]
on = "<S-Delete>"
run = "remove --permanently"
desc = "Удалить безвозвратно"
# Переименовать
[[mgr.prepend_keymap]]
on = "<F2>"
run = "rename --cursor=before_ext"
desc = "Переименовать"
# Создать файл
[[mgr.prepend_keymap]]
on = "<C-n>"
run = "create"
desc = "Создать файл"
# Создать папку
[[mgr.prepend_keymap]]
on = "<C-S-n>"
run = "create --dir"
desc = "Создать папку"
# Выделить всё
[[mgr.prepend_keymap]]
on = "<C-a>"
run = "toggle_all --state=on"
desc = "Выделить всё"
# Поиск по именам в текущей папке
[[mgr.prepend_keymap]]
on = "<C-f>"
run = "find --smart"
desc = "Найти файл"
# Перейти по указанному пути
[[mgr.prepend_keymap]]
on = "<C-l>"
run = "cd --interactive"
desc = "Перейти по пути"
# Вернуться в родительскую папку
[[mgr.prepend_keymap]]
on = "<Backspace>"
run = "leave"
desc = "На уровень выше"
# Новая вкладка
[[mgr.prepend_keymap]]
on = "<C-t>"
run = "tab_create --current"
desc = "Новая вкладка"
[[mgr.prepend_keymap]]
on = "<C-Left>"
run = "tab_switch -1 --relative"
desc = "Предыдущая вкладка"
[[mgr.prepend_keymap]]
on = "<C-Right>"
run = "tab_switch 1 --relative"
desc = "Следующая вкладка"
# Закрыть вкладку
[[mgr.prepend_keymap]]
on = "<C-w>"
run = "close"
desc = "Закрыть вкладку"
# В полях ввода Esc сразу отменяет действие,
# а не переключает поле в командный режим Vim
[[input.prepend_keymap]]
on = "<Esc>"
run = "close"
desc = "Отмена"
Итого будет работать так:
| Действие | Сочетание |
|---|---|
| Копировать | Ctrl+C |
| Вырезать | Ctrl+X |
| Вставить | Ctrl+V |
| Удалить в корзину | Delete |
| Удалить безвозвратно | Shift+Delete |
| Создать файл | Ctrl+N |
| Создать папку | Ctrl+Shift+N |
| Выделить всё | Ctrl+A |
| Поиск | Ctrl+F |
| Перейти по пути | Ctrl+L |
| Новая вкладка | Ctrl+T |
| Предыдущая вкладка | Ctrl+← |
| Следующая вкладка | Ctrl+→ |
| Закрыть вкладку | Ctrl+W |
| Выйти из Yazi | q |
| Отмена действия в полях ввода | Esc |
Некоторые сочетания по умолчанию:
| Открыть файл или папку | Enter |
| Перейти назад | ← или Backspace |
| Перейти вперёд | → |
| Помощь | F1 |
| Переименовать | F2 |
| Показать/скрыть скрытые файлы/папки | . |
| Переименовать | r |
Оставаться в выбранной папке после выхода
Добавить в ~/.bashrc:
function y() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
command yazi "$@" --cwd-file="$tmp"
IFS= read -r -d '' cwd < "$tmp"
if [ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && [ -d "$cwd" ]; then
builtin cd -- "$cwd"
fi
command rm -f -- "$tmp"
}
Применить:
source ~/.bashrc