refactor!: disable netrw by default (#155)
If you use oil and you want to still use netrw, set `default_file_explorer = false`. It is nonsensical to both use netrw _and_ have oil hijack directory buffers (which was the case for the default config). It also causes undefined behavior and bugs. When `default_file_explorer = true` (the default) oil will now disable netrw for you.
This commit is contained in:
parent
8f7807946a
commit
9d90893c37
5 changed files with 20 additions and 38 deletions
5
.github/generate.py
vendored
5
.github/generate.py
vendored
|
|
@ -73,10 +73,11 @@ def update_readme_toc():
|
||||||
|
|
||||||
def update_config_options():
|
def update_config_options():
|
||||||
config_file = os.path.join(ROOT, "lua", "oil", "config.lua")
|
config_file = os.path.join(ROOT, "lua", "oil", "config.lua")
|
||||||
opt_lines = read_section(config_file, r"^\s*local default_config =", r"^}$")
|
opt_lines = ['\n```lua\nrequire("oil").setup({\n']
|
||||||
|
opt_lines.extend(read_section(config_file, r"^\s*local default_config =", r"^}$"))
|
||||||
replace_section(
|
replace_section(
|
||||||
README,
|
README,
|
||||||
r"^require\(\"oil\"\)\.setup\(\{$",
|
r"^## Options$",
|
||||||
r"^}\)$",
|
r"^}\)$",
|
||||||
opt_lines,
|
opt_lines,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
16
README.md
16
README.md
|
|
@ -114,7 +114,7 @@ Then open a directory with `nvim .`. Use `<CR>` to open a file/directory, and `-
|
||||||
If you want to mimic the `vim-vinegar` method of navigating to the parent directory of a file, add this keymap:
|
If you want to mimic the `vim-vinegar` method of navigating to the parent directory of a file, add this keymap:
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
vim.keymap.set("n", "-", require("oil").open, { desc = "Open parent directory" })
|
vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })
|
||||||
```
|
```
|
||||||
|
|
||||||
You can open a directory with `:edit <path>` or `:Oil <path>`. To open oil in a floating window, do `:Oil --float <path>`.
|
You can open a directory with `:edit <path>` or `:Oil <path>`. To open oil in a floating window, do `:Oil --float <path>`.
|
||||||
|
|
@ -123,6 +123,9 @@ You can open a directory with `:edit <path>` or `:Oil <path>`. To open oil in a
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
require("oil").setup({
|
require("oil").setup({
|
||||||
|
-- Oil will take over directory buffers (e.g. `vim .` or `:e src/`)
|
||||||
|
-- Set to false if you still want to use netrw.
|
||||||
|
default_file_explorer = true,
|
||||||
-- Id is automatically added at the beginning, and name at the end
|
-- Id is automatically added at the beginning, and name at the end
|
||||||
-- See :help oil-columns
|
-- See :help oil-columns
|
||||||
columns = {
|
columns = {
|
||||||
|
|
@ -147,8 +150,6 @@ require("oil").setup({
|
||||||
conceallevel = 3,
|
conceallevel = 3,
|
||||||
concealcursor = "n",
|
concealcursor = "n",
|
||||||
},
|
},
|
||||||
-- Oil will take over directory buffers (e.g. `vim .` or `:e src/`
|
|
||||||
default_file_explorer = true,
|
|
||||||
-- Restore window options to previous values when leaving an oil buffer
|
-- Restore window options to previous values when leaving an oil buffer
|
||||||
restore_win_options = true,
|
restore_win_options = true,
|
||||||
-- Skip the confirmation popup for simple operations
|
-- Skip the confirmation popup for simple operations
|
||||||
|
|
@ -331,12 +332,3 @@ If you don't need those features specifically, check out the alternatives listed
|
||||||
- [vidir](https://github.com/trapd00r/vidir): Never personally used, but might be the first plugin to come up with the idea of editing a directory like a buffer.
|
- [vidir](https://github.com/trapd00r/vidir): Never personally used, but might be the first plugin to come up with the idea of editing a directory like a buffer.
|
||||||
|
|
||||||
There's also file trees like [neo-tree](https://github.com/nvim-neo-tree/neo-tree.nvim) and [nvim-tree](https://github.com/nvim-tree/nvim-tree.lua), but they're really a different category entirely.
|
There's also file trees like [neo-tree](https://github.com/nvim-neo-tree/neo-tree.nvim) and [nvim-tree](https://github.com/nvim-tree/nvim-tree.lua), but they're really a different category entirely.
|
||||||
|
|
||||||
**Q: I don't need netrw anymore. How can I disable it?**
|
|
||||||
|
|
||||||
**A:** Oil can fully replace netrw for local and ssh file browsing/editing, but keep in mind that netrw also supports rsync, http, ftp, and dav. If you don't need these other features, you can disable netrw with the following:
|
|
||||||
|
|
||||||
```lua
|
|
||||||
vim.g.loaded_netrw = 1
|
|
||||||
vim.g.loaded_netrwPlugin = 1
|
|
||||||
```
|
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,9 @@ OPTIONS *oil-option
|
||||||
|
|
||||||
>
|
>
|
||||||
require("oil").setup({
|
require("oil").setup({
|
||||||
|
-- Oil will take over directory buffers (e.g. `vim .` or `:e src/`)
|
||||||
|
-- Set to false if you still want to use netrw.
|
||||||
|
default_file_explorer = true,
|
||||||
-- Id is automatically added at the beginning, and name at the end
|
-- Id is automatically added at the beginning, and name at the end
|
||||||
-- See :help oil-columns
|
-- See :help oil-columns
|
||||||
columns = {
|
columns = {
|
||||||
|
|
@ -38,8 +41,6 @@ OPTIONS *oil-option
|
||||||
conceallevel = 3,
|
conceallevel = 3,
|
||||||
concealcursor = "n",
|
concealcursor = "n",
|
||||||
},
|
},
|
||||||
-- Oil will take over directory buffers (e.g. `vim .` or `:e src/`
|
|
||||||
default_file_explorer = true,
|
|
||||||
-- Restore window options to previous values when leaving an oil buffer
|
-- Restore window options to previous values when leaving an oil buffer
|
||||||
restore_win_options = true,
|
restore_win_options = true,
|
||||||
-- Skip the confirmation popup for simple operations
|
-- Skip the confirmation popup for simple operations
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
local default_config = {
|
local default_config = {
|
||||||
|
-- Oil will take over directory buffers (e.g. `vim .` or `:e src/`)
|
||||||
|
-- Set to false if you still want to use netrw.
|
||||||
|
default_file_explorer = true,
|
||||||
-- Id is automatically added at the beginning, and name at the end
|
-- Id is automatically added at the beginning, and name at the end
|
||||||
-- See :help oil-columns
|
-- See :help oil-columns
|
||||||
columns = {
|
columns = {
|
||||||
|
|
@ -23,8 +26,6 @@ local default_config = {
|
||||||
conceallevel = 3,
|
conceallevel = 3,
|
||||||
concealcursor = "n",
|
concealcursor = "n",
|
||||||
},
|
},
|
||||||
-- Oil will take over directory buffers (e.g. `vim .` or `:e src/`
|
|
||||||
default_file_explorer = true,
|
|
||||||
-- Restore window options to previous values when leaving an oil buffer
|
-- Restore window options to previous values when leaving an oil buffer
|
||||||
restore_win_options = true,
|
restore_win_options = true,
|
||||||
-- Skip the confirmation popup for simple operations
|
-- Skip the confirmation popup for simple operations
|
||||||
|
|
|
||||||
|
|
@ -846,9 +846,14 @@ M.setup = function(opts)
|
||||||
end, { desc = "Open oil file browser on a directory", nargs = "*", complete = "dir" })
|
end, { desc = "Open oil file browser on a directory", nargs = "*", complete = "dir" })
|
||||||
local aug = vim.api.nvim_create_augroup("Oil", {})
|
local aug = vim.api.nvim_create_augroup("Oil", {})
|
||||||
|
|
||||||
if config.default_file_explorer and vim.fn.exists("#FileExplorer") then
|
if config.default_file_explorer then
|
||||||
|
vim.g.loaded_netrw = 1
|
||||||
|
vim.g.loaded_netrwPlugin = 1
|
||||||
|
-- If netrw was already loaded, clear this augroup
|
||||||
|
if vim.fn.exists("#FileExplorer") then
|
||||||
vim.api.nvim_create_augroup("FileExplorer", { clear = true })
|
vim.api.nvim_create_augroup("FileExplorer", { clear = true })
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local patterns = {}
|
local patterns = {}
|
||||||
local filetype_patterns = {}
|
local filetype_patterns = {}
|
||||||
|
|
@ -967,24 +972,6 @@ M.setup = function(opts)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
if
|
|
||||||
vim.g.loaded_netrwPlugin ~= 1
|
|
||||||
and not config.silence_netrw_warning
|
|
||||||
and config.default_file_explorer
|
|
||||||
then
|
|
||||||
vim.api.nvim_create_autocmd("FileType", {
|
|
||||||
desc = "Inform user how to disable netrw",
|
|
||||||
group = aug,
|
|
||||||
pattern = "netrw",
|
|
||||||
once = true,
|
|
||||||
callback = function()
|
|
||||||
vim.notify(
|
|
||||||
"If you expected an Oil buffer here, you may want to disable netrw (:help netrw-noload)\nSet `default_file_explorer = false` in oil.setup() to not take over netrw buffers, or `silence_netrw_warning = true` to disable this message.",
|
|
||||||
vim.log.levels.WARN
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
vim.api.nvim_create_autocmd("WinNew", {
|
vim.api.nvim_create_autocmd("WinNew", {
|
||||||
desc = "Restore window options when splitting an oil window",
|
desc = "Restore window options when splitting an oil window",
|
||||||
group = aug,
|
group = aug,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue