diff --git a/lua/nvim-tree/actions/node/open-file.lua b/lua/nvim-tree/actions/node/open-file.lua index 35ec6b66873..0add9560879 100644 --- a/lua/nvim-tree/actions/node/open-file.lua +++ b/lua/nvim-tree/actions/node/open-file.lua @@ -270,6 +270,7 @@ local function open_in_new_window(filename, mode) end local fname = vim.fn.fnameescape(filename) + fname = utils.escape_special_chars(fname) local cmd if create_new_window then diff --git a/lua/nvim-tree/utils.lua b/lua/nvim-tree/utils.lua index 78d7853bfb7..386472eaa85 100644 --- a/lua/nvim-tree/utils.lua +++ b/lua/nvim-tree/utils.lua @@ -210,6 +210,16 @@ function M.canonical_path(path) return path end +-- Escapes special characters in string if windows else returns unmodified string. +-- @param path string +-- @return path +function M.escape_special_chars(path) + if path == nil then + return path + end + return M.is_windows and path:gsub("%(", "\\("):gsub("%)", "\\)") or path +end + -- Create empty sub-tables if not present -- @param tbl to create empty inside of -- @param path dot separated string of sub-tables