SkillAgentSearch skills...

Dired.nvim

Emacs dired like file manager for neovim

Install / Use

/learn @X3eRo0/Dired.nvim
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

dired.nvim

A file browser inspired from Emacs Dired for neovim.

Screenshots

output

Different types of files in dired.nvim Screenshot from 2023-02-02 20-16-20 Screenshot from 2023-02-02 20-15-57

Installation

Requires Neovim 0.6 or higher.

Packer.nvim

use {
    "X3eRo0/dired.nvim",
    requires = "MunifTanjim/nui.nvim",
    config = function()
        require("dired").setup {
            path_separator = "/",
            show_banner = false,
            show_icons = false,
            show_hidden = true,
            show_dot_dirs = true,
            show_colors = true,
        }
    end
}

Setup

You can require this plugin and use it like this.

-- Neovim configuration for the 'dired' plugin

-- Set up the 'dired' plugin with custom options
require("dired").setup({
    path_separator = "/",                -- Use '/' as the path separator
    show_hidden = true,                  -- Show hidden files
    show_icons = false,                  -- Show icons (patched font required)
    show_banner = false,                 -- Do not show the banner
    hide_details = false,                -- Show file details by default
    sort_order = "name",                 -- Sort files by name by default
    override_cwd = true,                 -- Override cwd by default

    -- Define keybindings for various 'dired' actions
    keybinds = {
        dired_enter = "<CR>",
        dired_back = "-",
        dired_up = "_",
        dired_rename = "R",
        -- ... (add more keybindings as needed)
        dired_quit = "q",
    },

    -- Define colors for different file types and attributes
    colors = {
        DiredDimText = { link = {}, bg = "NONE", fg = "505050", gui = "NONE" },
        DiredDirectoryName = { link = {}, bg = "NONE", fg = "9370DB", gui = "NONE" },
        -- ... (define more colors as needed)
        DiredMoveFile = { link = {}, bg = "NONE", fg = "ff3399", gui = "bold" },
    },
})

Usage

Run the command :Dired to open a buffer for your current directory. Press - in any buffer to open a directory buffer for its parent. Editing a directory will also open up a buffer, overriding Netrw.

Commands

You can use the following commands to add in your custom keybinds.

| Command | Description | |----------------------|--------------------------------------------------------| | Dired | Open Dired UI (dir completion) | | DiredRename | Rename file/directory under cursor (file completion) | | DiredDelete | Delete file/directory under cursor (file completion) | | DiredMark | Mark file/directory under cursor (file completion) | | DiredDeleteRange | Delete selected files/directories (visual) | | DiredDeleteMarked | Delete marked files/directories | | DiredMarkRange | Mark a range of files/directories (visual) | | DiredGoBack | Navigate back in the directory history | | DiredGoUp | Move up to the parent directory | | DiredCopy | Copy the file/directory under the cursor | | DiredCopyRange | Copy selected files/directories (visual) | | DiredCopyMarked | Copy marked files/directories | | DiredMove | Move the file/directory under the cursor | | DiredMoveRange | Move selected files/directories (visual) | | DiredMoveMarked | Move marked files/directories | | DiredPaste | Paste copied or moved files in the current directory | | DiredEnter | Open the file or directory at the cursor | | DiredCreate | Create a new directory | | DiredShellCmd | Apply any shell command to file/directory under cursor (shell cmd completion)| | DiredShellCmdMarked | Apply any shell command to marked files/directories| | DiredToggleHidden | Toggle the visibility of hidden files | | DiredToggleSortOrder | Toggle the sorting order of files and directories | | DiredToggleColors | Toggle the display of colors | | DiredToggleIcons | Toggle the display of filetype icons | | DiredToggleHideDetails| Toggle hiding/showing file details | | DiredQuit | Quit the 'dired' interface |

Keybinding

Inside a directory buffer, there are the following keybindings: | Keybinding | Description | |-------------------|---------------------------------------------------| | <CR>| Open the file or directory at the cursor. | | d| Create new directories and files. | | M| Mark directories and files (both in normal and visual mode). | | C| Copy files. | | X| Move files. | | P| Paste files in the current directory. | | D| Delete directories and files (both in normal and visual mode). | | R| Rename directories and files. | | MD| Delete marked files. | | MC| Copy marked files. | | MX| Move marked files. | | _| Go to the parent directory. | | -| Go back to previous directory. | | !| Apply any command to directories/files under cursor. | | &| Apply any command to marked directories and files. | | .| Toggle show_hidden. | | ,| Change sort_order. | | c| Toggle colors. | | *| Toggle filetype icons. | | (| Toggle hiding/showing file details. | | q| Quit the 'dired' interface. |

The default keybinds are given below.

{
    dired_enter = "<CR>",
    dired_back = "-",
    dired_up = "_",
    dired_rename = "R",
    dired_create = "d",
    dired_delete = "D",
    dired_delete_range = "D",
    dired_copy = "C",
    dired_copy_range = "C",
    dired_copy_marked = "MC",
    dired_move = "X",
    dired_move_range = "X",
    dired_move_marked = "MX",
    dired_paste = "P",
    dired_mark = "M",
    dired_mark_range = "M",
    dired_delete_marked = "MD",
    dired_shell_cmd = "!",
    dired_shell_cmd_marked = "&",
    dired_toggle_hidden = ".",
    dired_toggle_sort_order = ",",
    dired_toggle_icons = "*",
    dired_toggle_colors = "c",
    dired_toggle_hide_details = "(",
    dired_quit = "q",
}

Colors

You can change the colors of each component in the output by specifiying a table of options for each Hightlight group used in Dired.

local DiredDimText = {
    link = {},
    bg = "232323",
    fg = "f3f3f3"
    gui = "bold",
}

The options are explained below. | Option | Descript | |--------|----------| | link | A list of highlight groups to link to, in order of priority. The first one that exists will be used. | | bg | The background color to use, in hex, if the highlight group is not defined and it is not linked to another group.| | fg | The foreground color to use, in hex, if the highlight group is not defined and it is not linked to another group.| | gui | The gui to use, if the highlight group is not defined and it is not linked to another group. |

The gui arg is described in syntax.txt and valid arguments are defined in attr-list :h attr-list

gui={attr-list}
	These give the attributes to use in the GUI mode.
	See |attr-list| for a description.
	Note that "bold" can be used here and by using a bold font.  They
	have the same effect.
	Note that the attributes are ignored for the "Normal" group.

attr-list is a comma-separated list (without spaces) of the following items (in any order):

| Option | Description | |--------|-------------| |bold|| |underline|| |undercurl|curly underline |underdouble|double underline| |underdotted|dotted underline| |underdashed|dashed underline| |strikethrough|| |reverse|| |inverse|same as reverse| |italic|| |standout|| |altfont|| |nocombine|override attributes instead of combining them| |NONE|no attributes used (used to reset it)|

The default color configuration is given below

{
    DiredDimText = { link = {}, bg = "NONE", fg = "505050", gui = "NONE" },
    DiredDirectoryName = { link = {}, bg = "NONE", fg = "9370DB", gui = "NONE" },
    DiredDotfile = { link = {}, bg = "NONE", fg = "626262" },
    DiredFadeText1 = { link = {}, bg = "NONE", fg = "626262", gui = "NONE" },
    DiredFadeText2 = { link = {}, bg = "NONE", fg = "444444", gui = "NONE" },
    DiredSize = { link = { "Normal" }, bg = "NONE", fg = "None", gui = "NONE" },
    DiredUsername = { link = {}, bg = "NONE", fg = "87CEFA", gui = "bold" },
    DiredMonth = { link = { "Normal" }, bg = "NONE", fg = "None", gui = "bold" },
    DiredDay = { link = { "Normal" }, bg = "NONE", fg = "None", gui = "bold" },
    DiredFileName = { link = {}, bg = "NONE", fg = "NONE", gui = "NONE" },
    DiredFileSuid = { link = {}, bg = "ff6666", fg = "000000", gui = "bold" },
    DiredNormal = { link = { "Normal" }, bg = "NONE", fg = "NONE", gui = "NONE" },
    DiredNormalBold = { link = {}, bg = "NONE", fg = "ffffff", gu
View on GitHub
GitHub Stars190
CategoryDevelopment
Updated3d ago
Forks18

Languages

Lua

Security Score

95/100

Audited on Mar 30, 2026

No findings