@@ -45,7 +45,7 @@ function Utils:ctor(opt)
4545 " Vimux"
4646 )
4747 end
48- end
48+ end ,
4949 }
5050end
5151
@@ -69,15 +69,17 @@ function Utils:replaceVars(command, path)
6969 -- Check if we already have the result cached
7070 local cache_key = command .. " :" .. path
7171 local cached = var_cache [cache_key ]
72- if cached then return cached end
72+ if cached then
73+ return cached
74+ end
7375
7476 local no_sub_command = command
7577
7678 -- Pre-calculate replacement values to avoid multiple vim.fn calls
7779 local file_info = {
78- nameWithoutExt = vim .fn .fnamemodify (path , " :t:r" ),
79- name = vim .fn .fnamemodify (path , " :t" ),
80- dir = vim .fn .fnamemodify (path , " :p:h" )
80+ nameWithoutExt = vim .fn .shellescape ( vim . fn . fnamemodify (path , " :t:r" ) ),
81+ name = vim .fn .shellescape ( vim . fn . fnamemodify (path , " :t" ) ),
82+ dir = vim .fn .shellescape ( vim . fn . fnamemodify (path , " :p:h" )),
8183 }
8284
8385 -- Use gsub once with a replacement function
@@ -87,7 +89,7 @@ function Utils:replaceVars(command, path)
8789 elseif var == " fileName" then
8890 return file_info .name
8991 elseif var == " file" then
90- return path
92+ return vim . fn . shellescape ( path )
9193 elseif var == " dir" then
9294 return file_info .dir
9395 elseif var == " end" then
@@ -98,7 +100,7 @@ function Utils:replaceVars(command, path)
98100 end )
99101
100102 if command == no_sub_command then
101- command = command .. " " .. path
103+ command = command .. " " .. vim . fn . shellescape ( path )
102104 end
103105
104106 -- Store result in cache
0 commit comments