No description
Find a file
Barrett Ruth 7d410acaf1
fix(ci): switch typecheck action to stevearc/nvim-typecheck-action (#26)
Problem: mrcjkb/lua-typecheck-action runs lua-language-server in a bare
nix sandbox without neovim installed, causing 71 type errors for all
vim.* and uv.* types. LuaLS 3.17.x also introduced stricter type
checking that flags uv.aliases.fs_types mismatches not present in
3.16.4. The .luarc.json workspace.library entries conflicted with the
action's auto-appended luvit-meta, producing duplicate uv type unions.

Solution: switch to stevearc/nvim-typecheck-action@v2 (matching
upstream), pin LuaLS to 3.16.4, convert .luarc.json to nested format
without workspace.library (let the action provide VIMRUNTIME and
luvit-meta), and add .direnv/* to selene.toml exclude for local use.
2026-02-22 16:14:10 -05:00
.github fix(ci): switch typecheck action to stevearc/nvim-typecheck-action (#26) 2026-02-22 16:14:10 -05:00
doc feat: support vim.g.oil configuration + remove release-please (#17) 2026-02-21 22:38:38 -05:00
lua build: replace luacheck with selene, add nix devshell and pre-commit (#20) 2026-02-21 23:52:27 -05:00
perf build: replace luacheck with selene, add nix devshell and pre-commit (#20) 2026-02-21 23:52:27 -05:00
plugin build: replace luacheck with selene, add nix devshell and pre-commit (#20) 2026-02-21 23:52:27 -05:00
spec fix(test): resolve busted migration test isolation issues (#25) 2026-02-22 15:39:20 -05:00
syntax feat: new adapter for S3 buckets (#677) 2025-11-30 12:41:37 -08:00
.busted build: migrate test framework from plenary to busted 2026-02-22 00:26:54 -05:00
.editorconfig build: modernize repository (#27) 2026-02-22 16:06:31 -05:00
.gitignore build: modernize repository (#27) 2026-02-22 16:06:31 -05:00
.luarc.json fix(ci): switch typecheck action to stevearc/nvim-typecheck-action (#26) 2026-02-22 16:14:10 -05:00
.pre-commit-config.yaml build: replace luacheck with selene, add nix devshell and pre-commit (#20) 2026-02-21 23:52:27 -05:00
.prettierrc build: modernize repository (#27) 2026-02-22 16:06:31 -05:00
.stylua.toml build: replace luacheck with selene, add nix devshell and pre-commit (#20) 2026-02-21 23:52:27 -05:00
flake.lock build: replace luacheck with selene, add nix devshell and pre-commit (#20) 2026-02-21 23:52:27 -05:00
flake.nix build: migrate test framework from plenary to busted 2026-02-22 00:26:54 -05:00
LICENSE build: modernize repository (#27) 2026-02-22 16:06:31 -05:00
oil.nvim-scm-1.rockspec build: migrate test framework from plenary to busted 2026-02-22 00:26:54 -05:00
README.md build: modernize repository (#27) 2026-02-22 16:06:31 -05:00
selene.toml fix(ci): switch typecheck action to stevearc/nvim-typecheck-action (#26) 2026-02-22 16:14:10 -05:00
vim.toml build: replace luacheck with selene, add nix devshell and pre-commit (#20) 2026-02-21 23:52:27 -05:00

oil.nvim

A file explorer that lets you edit your filesystem like a buffer

Browse directories as normal Neovim buffers, then create, rename, move, copy, and delete files by editing the listing and saving. Cross-directory operations work seamlessly across local, SSH, S3, and trash adapters.

https://user-images.githubusercontent.com/506791/209727111-6b4a11f4-634a-4efa-9461-80e9717cea94.mp4

Features

  • Edit directory listings as normal buffers — mutations are derived by diffing
  • Cross-directory move, copy, and rename across any adapter
  • Adapters for local filesystem, SSH, S3, and OS trash
  • File preview in split or floating window
  • Configurable columns (icon, size, permissions, timestamps)
  • Executable file highlighting and filetype-aware icons
  • Floating window and split layouts

Requirements

Installation

Install with your package manager of choice or via luarocks:

luarocks install oil.nvim

Documentation

:help oil.nvim

FAQ

Q: How do I set up oil.nvim with lazy.nvim?

{
  'barrettruth/oil.nvim',
  init = function()
    vim.g.oil = {
      columns = { 'icon', 'size' },
      delete_to_trash = true,
    }
  end,
}

Do not use config, opts, or lazy — oil.nvim loads itself when you open a directory.

Q: How do I migrate from stevearc/oil.nvim?

Replace stevearc/oil.nvim with barrettruth/oil.nvim in your plugin manager and switch your setup() call to a vim.g.oil assignment in init. The configuration table is the same.

Q: Why "oil"?

From the vim-vinegar README, a quote by Drew Neil:

Split windows and the project drawer go together like oil and vinegar

Q: What are some alternatives?

Acknowledgements

oil.nvim was created by Steven Arcangeli. This fork is maintained by Barrett Ruth.