desc="Удалить закладки через fzf (используйте TAB для выбора нескольких)"
[[mgr.prepend_keymap]]
on=["]","C"]
run="plugin whoosh delete_all"
desc="Удалить все пользовательские закладки"
# Переименование закладок
[[mgr.prepend_keymap]]
on=["]","r"]
run="plugin whoosh rename_by_key"
desc="Переименовать закладку по клавише"
[[mgr.prepend_keymap]]
on=["]","R"]
run="plugin whoosh rename_by_fzf"
desc="Переименовать закладку через fzf"
```
## Функции
### Временные закладки
Закладки только для текущей сессии, которые не сохраняются между перезапусками Yazi:
- Создание с помощью команд `save_temp` или `save_cwd_temp`
- Идентификация с префиксом [TEMP] в меню навигации и fzf
- Автоматическая очистка при перезапуске Yazi
- Можно удалить по отдельности или все сразу с помощью `delete_all_temp`
### История директорий
<div style="text-align: center;">
<img src="image/history.png" alt="Превью истории директорий" width="1100px">
</div>
Плагин поддерживает умную систему истории директорий:
- **Независимая история для каждой вкладки** - Каждая вкладка имеет свою собственную историю
- **Автоматическое отслеживание** - История обновляется при переходах между директориями
- **Фильтрация текущей директории** - Текущая директория исключается из отображения истории
- **Настраиваемый размер** - Количество сохраняемых директорий настраивается (по умолчанию 10)
- **Отдельные настройки сокращения** - Независимые настройки отображения путей для истории
**Поведение системы:**
- При первом запуске yazi история пуста
- Предыдущие директории добавляются в историю только при переходе в новую директорию
- Новые элементы добавляются в начало списка (сортировка от новых к старым)
- При превышении лимита самые старые элементы удаляются
- Дубликаты автоматически удаляются и перемещаются наверх
### Функции меню навигации
При использовании `jump_by_key` вы получаете доступ к умному меню навигации с:
- **Создание временной закладки** - Нажмите `<Enter>` для быстрого создания закладки текущей директории
- **Нечеткий поиск** - Нажмите `<Space>` для открытия поиска fzf
- **История директорий** - Нажмите `<Tab>` для просмотра истории через fzf (только если есть история)
- **Предыдущая директория** - Нажмите `<Backspace>` для возврата к предыдущей директории (только если доступно)
- **Все закладки** - Как постоянные, так и временные закладки с четким визуальным различием
### Навигация по истории директорий
Плагин предоставляет два способа навигации по истории:
1.**Через меню навигации** - При использовании `jump_by_key` нажмите `<Tab>` для доступа к истории
2.**Прямой доступ** - Используйте настроенную специальную клавишу истории (по умолчанию `<Tab>`) для прямого доступа к fzf с историей
#### Примечание о клавише `<Tab>` в Neovim (yazi.nvim)
При запуске Whoosh внутри [mikavilpas/yazi.nvim](https://github.com/mikavilpas/yazi.nvim) стандартная привязка `<Tab>` (`cycle_open_buffers`) обрабатывается самим Neovim, поэтому Yazi не получает нажатие. Если нажатие `<Tab>` возвращает вас в буфер, из которого открывался Yazi, отключите или переназначьте эту клавишу в настройках yazi.nvim, чтобы корректно вызывать историю директорий:
{"<leader>cw","<cmd>Yazi cwd<cr>",desc="Open Yazi at CWD"},
},
opts={
open_for_directories=false,
keymaps={
cycle_open_buffers=false,
},
},
init=function()vim.g.loaded_netrwPlugin=1end,
}
```
Если вы хотите сохранить привязку `<Tab>` за Neovim, но при этом иметь доступ к истории директорий, переназначьте горячую клавишу whoosh через `special_keys` в файле `init.lua`:
```lua
require("whoosh"):setup{
special_keys={
history="<H>",
},
}
```
### Типы закладок
Плагин поддерживает три типа закладок:
1.**Конфигурационные закладки** - Определены в `init.lua`, нельзя удалить через интерфейс плагина
2.**Пользовательские закладки** - Созданы во время использования, сохранены в файл, можно удалить
3.**Временные закладки** - Только для сессии, хранятся в памяти, очищаются при перезапуске
При конфликте путей пользовательские закладки переопределяют конфигурационные закладки в отображении
## Параметры конфигурации
Плагин поддерживает следующие параметры конфигурации в функции `setup()`:
| `special_keys` | table | `см. описание` | Настройка клавиш встроенного меню (Enter/Space/Tab/Backspace); можно задать `false` для отключения |
| `path` | string | Зависит от ОС | Путь к файлу, где хранятся пользовательские закладки |
| `home_alias_enabled` | boolean | `true` | Подменять домашнюю директорию на `~` в отображении пути |
| `path_truncate_enabled` | boolean | `false` | Включить/выключить сокращение путей в меню навигации |
| `path_max_depth` | number | `3` | Максимальная глубина пути перед сокращением с "…" в меню навигации |
| `fzf_path_truncate_enabled` | boolean | `false` | Включить/выключить сокращение путей в нечетком поиске (fzf) |
| `fzf_path_max_depth` | number | `5` | Максимальная глубина пути перед сокращением с "…" в fzf |
| `path_truncate_long_names_enabled` | boolean | `false` | Включить/выключить сокращение длинных названий папок в меню навигации |
| `fzf_path_truncate_long_names_enabled` | boolean | `false` | Включить/выключить сокращение длинных названий папок в fzf |
| `path_max_folder_name_length` | number | `20` | Максимальная длина названия папки перед сокращением в меню навигации |
| `fzf_path_max_folder_name_length` | number | `20` | Максимальная длина названия папки перед сокращением в fzf |
| `history_size` | number | `10` | Количество директорий для хранения в истории |
| `history_fzf_path_truncate_enabled` | boolean | `false` | Включить/выключить сокращение путей по глубине для отображения в истории |
| `history_fzf_path_max_depth` | number | `5` | Максимальная глубина пути перед сокращением для истории |
| `history_fzf_path_truncate_long_names_enabled` | boolean | `false` | Включить/выключить сокращение длинных названий папок для истории |
| `history_fzf_path_max_folder_name_length` | number | `30` | Максимальная длина названий папок перед сокращением для истории |
### Конфигурация закладок
Плагин поддерживает упрощенный синтаксис закладок в конфигурации:
```lua
-- Упрощенный синтаксис (рекомендуется)
localbookmarks={
{tag="Рабочий стол",path="~/Desktop",key="d"},
{tag="Проекты",path="~/Projects",key="p"},
}
```
**Особенности упрощенного синтаксиса:**
- **Расширение тильды** - `~` автоматически расширяется до домашней директории
- **Нормализация путей** - Разделители `/` автоматически конвертируются для вашей ОС
- **Автоматический завершающий разделитель** - Директории получают правильные завершающие разделители
### Сокращение путей
Функция сокращения путей может контролироваться двумя параметрами:
-`path_truncate_enabled` (boolean, по умолчанию: `false`) - Включает или выключает сокращение путей полностью. Если не указано в конфигурации, по умолчанию `false`
-`path_max_depth` (number, по умолчанию: `3`) - Контролирует, как длинные пути отображаются в меню навигации
-`history_fzf_path_truncate_enabled` (boolean, по умолчанию: `false`) - Включает или выключает сокращение путей в истории директорий
-`history_fzf_path_max_depth` (number, по умолчанию: `5`) - Контролирует, как длинные пути отображаются в истории директорий
Когда `path_truncate_enabled` явно установлен в `true` и путь имеет больше уровней директорий, чем `path_max_depth`, начальные части заменяются на "…" для сохранения краткости отображения.
**По умолчанию (когда `path_truncate_enabled` не указан или установлен в `false`):**
Когда включены как сокращение названий папок, так и сокращение по глубине, сначала сокращаются названия папок, затем применяется сокращение по глубине:
| `save` | Добавить закладку для выделенного файла/директории |
| `save_cwd` | Добавить закладку для текущей рабочей директории |
| `save_temp` | Добавить временную закладку для выделенного файла/директории |
| `save_cwd_temp` | Добавить временную закладку для текущей рабочей директории |
| `jump_by_key` | Открыть меню навигации для перехода к закладке по клавише |
| `jump_key_<keys>` | Мгновенный переход к закладке по указанной последовательности клавиш |
| `jump_by_fzf` | Открыть нечеткий поиск для перехода к закладке |
| `delete_by_key` | Удалить закладку, выбрав по клавише |
| `delete_by_fzf` | Удалить несколько закладок с помощью fzf (TAB для выбора) |
| `delete_all` | Удалить все пользовательские закладки (исключая конфигурационные) |
| `delete_all_temp` | Удалить все временные закладки |
| `rename_by_key` | Переименовать закладку, выбрав по клавише |
| `rename_by_fzf` | Переименовать закладку с помощью нечеткого поиска |
### Прямой переход по ключу
Вы можете перейти к закладке без меню, передав последовательность клавиш напрямую в одном аргументе:
-`plugin whoosh jump_key_<keys>` - последовательность внутри аргумента, например `jump_key_k`, `jump_key_<Space>`, `jump_key_bb`.
Последовательности должны передаваться единым аргументом; формы с разделением пробелами не поддерживаются. Формат совпадает с окном редактирования закладки, поэтому можно комбинировать отдельные символы, значения через запятую и специальные клавиши вроде `<Space>` или `<A-l>`.
### Управление меню навигации
При использовании `jump_by_key` доступны следующие специальные элементы управления:
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.