У меня есть плагин nvim-tree/nvim-tree.lua, установленный в моей конфигурации на основе nvim lua. Как я могу исключить файлы или каталоги, чтобы они не отображались в окне nvim-tree?
Вот код:
nvim-tree.lua
-- following options are the default
-- each of these are documented in `:help nvim-tree.OPTION_NAME`
-- vim.g.nvim_tree_ignore = { "" }
local status_ok, nvim_tree = pcall(require, "nvim-tree")
if not status_ok then
return
end
--[[ local config_status_ok, nvim_tree_config = pcall(require, "nvim-tree.config") ]]
--[[ if not config_status_ok then ]]
--[[ return ]]
--[[ end ]]
--[[ local tree_cb = nvim_tree_config.nvim_tree_callback ]]
nvim_tree.setup({
filters = {
dotfiles = false,
git_clean = false,
no_buffer = false,
custom = {},
exclude = { 'node_modules' },
},
disable_netrw = true,
hijack_netrw = true,
--open_on_setup = false,
open_on_tab = false,
hijack_cursor = false,
update_cwd = true,
hijack_directories = {
enable = true,
auto_open = true,
},
diagnostics = {
enable = true,
icons = {
hint = "",
info = "",
warning = "",
error = "",
},
},
update_focused_file = {
enable = true,
update_cwd = true,
ignore_list = {},
},
git = {
enable = true,
ignore = true,
timeout = 500,
},
view = {
width = 30,
--height = 30,
hide_root_folder = false,
side = "left",
--auto_resize = true,
mappings = {
custom_only = false,
},
number = false,
relativenumber = false,
},
actions = {
--quit_on_open = true,
--window_picker = { enable = true },
},
renderer = {
highlight_git = true,
root_folder_modifier = ":t",
icons = {
show = {
file = true,
folder = true,
folder_arrow = true,
git = true,
},
glyphs = {
default = "",
symlink = "",
git = {
unstaged = "",
staged = "S",
unmerged = "",
renamed = "➜",
deleted = "",
untracked = "U",
ignored = "◌",
},
folder = {
default = "",
open = "",
empty = "",
empty_open = "",
symlink = "",
},
},
},
},
})
Это снимок моего текущего рабочего каталога:
Я также установил filter на exclude = { 'node_modules' },, но, кажется, ничего не дает никаких изменений, я все еще вижу папку node_modules в окне nvim-tree? Есть идеи ?
Я думаю, что filesystem_watchers не удаляет node_modules, он просто оставляет его там и следит за папкой, если внутри node_modules что-то изменилось. Я пробовал это раньше, и это не сработало, как ожидалось @FunkyFinch
Судя по приведенному здесь примеру, возможно, стоит попробовать поместить node_modulds в «настраиваемый» вместо исключения. github.com/LunarVim/LunarVim/issues/2896
Странно, что я попробовал filter.custom один раз, и это не сработало, но когда я делаю это во второй раз, это работает @FunkyFinch





Вы неправильно понимаете filters.exclude ключевое слово для плагина nvim-tree. Из документации плагина: «nvim-tree.filters.exclude — Список каталогов или файлов, которые нужно исключить из фильтрации: всегда показывать их».
Если вы хотите исключить некоторые каталоги/файлы (которые не будут отображаться), используйте ключевое слово filters.custom:
nvim_tree.setup({
filters = {
dotfiles = false,
git_clean = false,
no_buffer = false,
custom = { 'node_modules' },
},
(...)
})
Я думаю, что фильтр предназначен для типов файлов, и вы хотите, чтобы в filesystem_watcher игнорировался каталог. Можете ли вы попробовать использовать настройки ниже? filter = { dotfiles = false, git_clean = false, no_buffer = false, custom = {}, exclude = {}, }, filesystem_watchers = { enable = true, debounce_delay = 50, ignore_dirs = {}, },