diff --git a/doc_src/tutorial.hdr b/doc_src/tutorial.hdr
index c228c11f2..39992144a 100644
--- a/doc_src/tutorial.hdr
+++ b/doc_src/tutorial.hdr
@@ -180,7 +180,7 @@ It knows about paths and options:
 And history too. Type a command once, and you can re-summon it by just typing a few letters:
 
 \fish{cli-dark}
->_ r<s>__sync -avze ssh . myname@somelonghost.com:/some/long/path/doo/dee/doo/dee/doo</s>
+>_ <error>r</error><s>__sync -avze ssh . myname@somelonghost.com:/some/long/path/doo/dee/doo/dee/doo</s>
 \endfish
 
 To accept the autosuggestion, hit right arrow or @key{Control,F}. To accept a single word of the autosuggestion, @key{Alt,&rarr;} (right arrow). If the autosuggestion is not what you want, just ignore it.
diff --git a/lexicon_filter.in b/lexicon_filter.in
index cfacd1bac..9c250bc36 100644
--- a/lexicon_filter.in
+++ b/lexicon_filter.in
@@ -223,7 +223,7 @@ s/__\(.\)/\\\
 # Normal Directory
 s|mkdir |mkdir :|
 s|\([~/:][/]*[.A-Za-z_0-9/-]*\)\\ |\1=|g
-s|\([~/][/]*[.A-Za-z_0-9/=-]*\)|\\\
+s|\([~/:][/]*[.A-Za-z_0-9/=-]*\)|\\\
 <@path{\1}\
 |g
 t protect
@@ -275,6 +275,16 @@ s/^PCLN: //
     s/\(blah{[^@]*\)@dblq{\([^}]*\)}/\1"\2"/
     s/\(blah{[^@]*\)@....{\([^}]*\)}/\1\2/
 }
+/@dblq/{
+    :cleandblq
+    s/\(dblq{[^@<]*\)<*@...[^q]{\([^}]*\)}/\1\2/
+    t cleandblq
+}
+/@sglq/{
+    :cleansglq
+    s/\(sglq{[^@<]*\)<*@...[^q]{\([^}]*\)}/\1\2/
+    t cleansglq
+}
 /@redr/{
     :cleanredr
     s/\(redr{[^@}]*\)@cmnd{\([^}]*\)}/\1\2/
@@ -284,11 +294,13 @@ s/^PCLN: //
     s/\(redr{[^}]*\)}\( *\)@path{\([^}]*\)/\1\2\3/
     t cleanredr
 }
-/@sgst/ {
+/@sgst/{
+    s/@sgst{<@/@sgst{@/
     :cleansgst
     s/\(sgst{@curs{.}[^@]*\)@cmnd{\([^}]*\)}/\1\2/
     s/\(sgst{@curs{.}[^@]*\)@sbin{\([^}]*\)}/\1\2/
     s/\(sgst{@curs{.}[^@]*\)@path{\([^}]*\)}/\1\2/
+    s/\(sgst{@curs{.}[^@]*\)@fsfo{\([^}]*\)}/\1\2/
     t cleansgst
 }
 /@fsfo/{
@@ -298,6 +310,9 @@ s/^PCLN: //
     s/\(fsfo{[^@}]*\)@sbin{\([^}]*\)}/\1\2/
     t cleanfsfo
 }
+/@prmt{/{
+    s/@prmt{<@path/@prmt{@path/
+}
 #.
 # Restore Paths
 /@fsfo/ {
@@ -397,26 +412,27 @@ s/\n$//g
 # additional trailing characters stripped.
 x
 /^\<@[^}]*$/ ! {
-s/[^\<]*//
-s/^ *\\\n//
-s/[()] \\//
-s/\n *\\//
-s/^[^\<][^@][^\\]*//
-s/\n[]|;) ][^\\]*\\//
-s/\n[]|;) a-zA-z0-9-][^\\]*$//
-s/\n[]|;)}]\\//
-s/\n[]|;)}]\n//
-s/\n[]|;)}]$//
-s/[()]$//
-s/}@curs/}/
-s/\n@curs$//
-s/\n[^\<@][^\\]*\\//
-s/\n[^\<@][^\\]*//
-s/^\\//
-s/\n$//g
+    s/[^\<]*//
+    s/^ *\\\n//
+    s/[()] \\//
+    s/\n *\\//
+    s/^[^\<][^@][^\\]*//
+    s/\n[]|;) ][^\\]*\\//
+    s/\n[]|;) a-zA-z0-9-][^\\]*$//
+    s/\n[]|;)}]\\//
+    s/\n[]|;)}]\n//
+    s/\n[]|;)}]$//
+    s/[()]$//
+    s/}@curs/}/
+    s/\n@curs$//
+    s/\n[^\<@][^\\]*\\//
+    s/\n[^\<@][^\\]*//
+    s/^\\//
+    s/\n$//g
+}
 s/\\\n/\
 /
-}
+s/\< \n//
 #.
 # Swap the buffers back.
 x