+
Skip to content

A7Lavinraj/fyler.nvim

Repository files navigation




Fyler.nvim Logo


Fyler.nvim

A modern file manager for Neovim with git integration, LSP support, and intuitive navigation

License Stars

Showcase

Showcase

Features

Completed

  • File Operations
  • Git Integration
  • LSP Integration
  • Smart Navigation
  • Telescope Extension
  • Customizable Interface
  • Multiple Icon Providers
  • Indentation Guides
  • Netrw Hijacking
  • Public API
  • User Commands

Planned

  • File System Watching
  • Fuzzy Finding
  • SSH Integration

Installation

Stable Version (Recommended)

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",
})

Latest Version

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" }
}

Quick Start

Using Commands

:Fyler                    " Open with default options
:Fyler kind=split_left    " Open in specific window layout
:Fyler dir=~/projects     " Open specific directory

Using Lua API

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
})

Configuration

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
  },
})

Telescope Extension

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")

Documentation

Contributing

We welcome contributions! Please read our Contributing Guidelines before submitting pull requests.

Issues and Support

If you encounter any problems:

  1. Search existing issues to see if your problem has been reported
  2. If no related issue exists, please open a new one with detailed information

Similar Projects

If fyler.nvim doesn't meet your needs, consider these alternatives:

Acknowledgments

This project draws inspiration from several excellent Neovim plugins and libraries:

License

This project is licensed under the Apache-2.0 License. See the repository for full license details.

About

A neovim file manager which can edit file system like a buffer with tree view

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors 19

Languages

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载