return {
  {
    "stevearc/oil.nvim",
    dependencies = { "nvim-tree/nvim-web-devicons" },
    config = function()
      require("oil").setup({
        -- Oil will take over directory buffers (e.g. `vim .` or `:e src/`)
        default_file_explorer = true,

        -- Columns to show
        columns = {
          "icon",
          -- "permissions",
          -- "size",
          -- "mtime",
        },

        -- Buffer-local options
        buf_options = {
          buflisted = false,
          bufhidden = "hide",
        },

        -- Window-local options
        win_options = {
          wrap = false,
          signcolumn = "no",
          cursorcolumn = false,
          foldcolumn = "0",
          spell = false,
          list = false,
          conceallevel = 3,
          concealcursor = "nvic",
        },

        -- Delete to trash instead of permanently deleting
        delete_to_trash = true,

        -- Skip confirmation for simple operations
        skip_confirm_for_simple_edits = false,

        -- Prompt for confirmation on certain actions
        prompt_save_on_select_new_entry = true,

        -- Keymaps in oil buffer
        keymaps = {
          ["g?"] = "actions.show_help",
          ["<CR>"] = "actions.select",
          ["<C-v>"] = "actions.select_vsplit",
          ["<C-x>"] = "actions.select_split",
          ["<C-t>"] = "actions.select_tab",
          ["<C-p>"] = "actions.preview",
          ["<C-c>"] = "actions.close",
          ["<C-l>"] = "actions.refresh",
          ["-"] = "actions.parent",
          ["_"] = "actions.open_cwd",
          ["`"] = "actions.cd",
          ["~"] = "actions.tcd",
          ["gs"] = "actions.change_sort",
          ["gx"] = "actions.open_external",
          ["g."] = "actions.toggle_hidden",
          ["g\\"] = "actions.toggle_trash",
        },

        -- Set to false to disable all of the above keymaps
        use_default_keymaps = true,

        view_options = {
          -- Show files and directories that start with "."
          show_hidden = false,

          -- This function defines what is considered a "hidden" file
          is_hidden_file = function(name, bufnr)
            return vim.startswith(name, ".")
          end,

          -- Sort file names in a more intuitive order
          sort = {
            { "type", "asc" },
            { "name", "asc" },
          },
        },
      })

      -- Open parent directory in current window
      vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })

      -- Open parent directory in floating window
      vim.keymap.set("n", "<leader>-", require("oil").toggle_float, { desc = "Open Oil in floating window" })
    end,
  },
}
