- File Operations
- Git Integration
- LSP Integration
- Smart Navigation
- Telescope Extension
- Customizable Interface
- Multiple Icon Providers
- Indentation Guides
- Netrw Hijacking
- Public API
- User Commands
- File System Watching
- Fuzzy Finding
- SSH Integration
The stable branch updates only on releases and provides the most reliable experience.
Using Lazy.nvim:
{
"A7Lavinraj/fyler.nvim",
dependencies = { "nvim-mini/mini.icons" },
branch = "stable",
opts = {}
}
Using Mini.deps:
add({
source = "A7Lavinraj/fyler.nvim",
depends = { "nvim-mini/mini.icons" },
checkout = "stable",
})
The main branch includes the newest features but may contain bugs.
Using Lazy.nvim with mini.icons:
{
"A7Lavinraj/fyler.nvim",
dependencies = { "nvim-mini/mini.icons" },
opts = {}
}
Using Lazy.nvim with nvim-web-devicons:
{
"A7Lavinraj/fyler.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = { icon_provider = "nvim_web_devicons" }
}
:Fyler " Open with default options
:Fyler kind=split_left " Open in specific window layout
:Fyler dir=~/projects " Open specific directory
local fyler = require("fyler")
-- Open Fyler with optional settings
fyler.open({
dir = "~/", -- (Optional) Start in specific directory
kind = "split_left_most" -- (Optional) Use custom window layout
})
-- Toggle Fyler with optional settings
fyler.toggle({
dir = "~/", -- (Optional) Start in specific directory
kind = "split_left_most" -- (Optional) Use custom window layout
})
Fyler.nvim works out of the box with sensible defaults. Here's the complete configuration reference:
require("fyler").setup({
-- Close explorer when file is selected
close_on_select = true,
-- Auto-confirm simple file operations
confirm_simple = false,
-- Replace netrw as default explorer
default_explorer = false,
-- Git integration
git_status = {
enabled = true,
symbols = {
Untracked = "?",
Added = "+",
Modified = "*",
Deleted = "x",
Renamed = ">",
Copied = "~",
Conflict = "!",
Ignored = "#",
},
},
hooks = {
-- function(path) end
on_delete = nil,
-- function(src_path, dst_path) end
on_rename = nil,
-- function(hl_groups, palette) end
on_highlight = nil,
},
-- Directory icons
icon = {
directory_collapsed = nil,
directory_empty = nil,
directory_expanded = nil,
},
-- Icon provider (none, mini_icons or nvim_web_devicons)
icon_provider = "mini_icons",
-- Indentation guides
indentscope = {
enabled = true,
group = "FylerIndentMarker",
marker = "│",
},
-- Key mappings
mappings = {
["q"] = "CloseView",
["<CR>"] = "Select",
["<C-t>"] = "SelectTab",
["|"] = "SelectVSplit",
["-"] = "SelectSplit",
["^"] = "GotoParent",
["="] = "GotoCwd",
["."] = "GotoNode",
["#"] = "CollapseAll",
["<BS>"] = "CollapseNode",
},
popups = {
permission = {
-- Respective popup configuration:
-- border
-- height
-- width
-- left
-- right
-- top
-- bottom
},
},
-- Buffer tracking
track_current_buffer = true,
-- Window configuration
win = {
-- Window border style
border = "single",
-- Default window kind
kind = "replace",
-- Window kind presets
kind_presets = {
-- Define custom layouts
-- Values: "(0,1]rel" for relative or "{1...}abs" for absolute
},
-- Buffer and window options
buf_opts = {}, -- Custom buffer options
win_opts = {}, -- Custom window options
},
})
Fyler.nvim includes a Telescope extension for enhanced directory navigation:
local telescope = require("telescope")
telescope.setup({
extensions = {
fyler_zoxide = {
-- Extension configuration
}
}
})
telescope.load_extension("fyler_zoxide")
- Wiki: Comprehensive documentation available on the Wiki page
- Live Streams: Development streams on YouTube
- Stable Documentation: Stable branch documentation
We welcome contributions! Please read our Contributing Guidelines before submitting pull requests.
If you encounter any problems:
- Search existing issues to see if your problem has been reported
- If no related issue exists, please open a new one with detailed information
If fyler.nvim doesn't meet your needs, consider these alternatives:
This project draws inspiration from several excellent Neovim plugins and libraries:
This project is licensed under the Apache-2.0 License. See the repository for full license details.