diff --git a/example/cmd/root_test.go b/example/cmd/root_test.go
index 376dc377..9b455048 100644
--- a/example/cmd/root_test.go
+++ b/example/cmd/root_test.go
@@ -284,7 +284,7 @@ edit:completion:arg-completer[example] = [@arg]{
     if (eq $arg[-1] "") {
         arg[-1] = "''"
     }
-    eval (echo (str:join ' ' $arg) | xargs example _carapace elvish $uid | slurp) &ns=(ns [&arg=$arg])
+    eval (echo (str:join "\001" $arg) | xargs --delimiter="\001" example _carapace elvish $uid | slurp) &ns=(ns [&arg=$arg])
   }
 
   fn subindex [subcommand]{
diff --git a/internal/elvish/snippet.go b/internal/elvish/snippet.go
index 162b9f2f..22ac334c 100644
--- a/internal/elvish/snippet.go
+++ b/internal/elvish/snippet.go
@@ -39,7 +39,7 @@ edit:completion:arg-completer[%v] = [@arg]{
     if (eq $arg[-1] "") {
         arg[-1] = "''"
     }
-    eval (echo (str:join ' ' $arg) | xargs %v _carapace elvish $uid | slurp) &ns=(ns [&arg=$arg])
+    eval (echo (str:join "\001" $arg) | xargs --delimiter="\001" %v _carapace elvish $uid | slurp) &ns=(ns [&arg=$arg])
   }
 
   fn subindex [subcommand]{