diff --git a/lua/in-and-out/init.lua b/lua/in-and-out/init.lua index fa99cca..206a04e 100644 --- a/lua/in-and-out/init.lua +++ b/lua/in-and-out/init.lua @@ -63,20 +63,20 @@ function M.in_and_out() end function M.in_and_out_cmd() - -- local current_pos = vim.fn.getcmdpos() - -- local target_pos = nil - -- local line = vim.fn.getcmdline() - -- vim.notify(current_pos .. line) - -- for _, char in ipairs(targets) do - -- local found_pos = string.find(line, escape_lua_pattern(char), current_pos + 1) - -- if found_pos and (not target_pos or found_pos < target_pos) then - -- -- If char is a multibyte character, we need to take into account the extra bytes. - -- target_pos = found_pos + vim.fn.strlen(char) - 1 - -- end - -- end - -- if target_pos then - -- vim.fn.setcmdpos(target_pos) - -- end - vim.api.setcmdpos(1) + local current_pos = vim.fn.getcmdpos() + local target_pos = nil + local line = vim.fn.getcmdline() + vim.notify(current_pos .. line) + for _, char in ipairs(targets) do + local found_pos = string.find(line, escape_lua_pattern(char), current_pos + 1) + if found_pos and (not target_pos or found_pos < target_pos) then + -- If char is a multibyte character, we need to take into account the extra bytes. + target_pos = found_pos + vim.fn.strlen(char) - 1 + end + end + if target_pos then + vim.fn.setcmdpos(target_pos) + end + -- vim.fn.setcmdpos(1) end return M