diff --git a/functions/_repo_list.fish b/functions/_repo_list.fish
index cede54d..82b800a 100644
--- a/functions/_repo_list.fish
+++ b/functions/_repo_list.fish
@@ -1,3 +1,5 @@
 function _repo_list
-    find "$REPO_BASE_DIR" -type d -name ".git" -printf "%h\n" 2>/dev/null | sed 's|.*/||; s/\./_/g'
+    find "$REPO_BASE_DIR" -type d -name ".git" -printf "%h\n" 2>/dev/null | while read -l dir
+        echo (string replace -a '.' '_' (basename "$dir"))
+    end
 end