diff --git a/src/shell/completer.rs b/src/shell/completer.rs
index 255c7466cd9488858280e6be7809a5a880c3b2fb..5429e14eafb52c9d6a2c81f2564141f708859102 100644
--- a/src/shell/completer.rs
+++ b/src/shell/completer.rs
@@ -66,7 +66,8 @@ fn escape(input: &str) -> String {
     let mut output = Vec::with_capacity(input.len());
     for character in input.bytes() {
         match character {
-            b'(' | b')' | b'[' | b']' | b'&' => output.push(b'\\'),
+            b'(' | b')' | b'[' | b']' | b'&' | b'$' |
+            b'@' | b'{' | b'}' | b'<' | b'>' | b';' => output.push(b'\\'),
             _ => ()
         }
         output.push(character);