patch 8.2.2612: col('.') may get outdated column value

Problem:    col('.') may get outdated column value.
Solution:   Add a note to the help how to make this work and add a test for
            it. (closes #7971)
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index bf39130..873d5d6 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -263,6 +263,20 @@
 	endfunc
 	nnoremap <expr> <F3> <Sid>OpenPopup()
 
+Also, keep in mind that the expression may be evaluated when looking for
+typeahead, before the previous command has been executed.  For example: >
+	func StoreColumn()
+	  let g:column = col('.')
+	  return 'x'
+	endfunc
+	nnoremap <expr> x StoreColumn()
+	nmap ! f!x
+You will notice that g:column has the value from before executing "fx",
+because "z" is evaluated before "fx" is executed.
+This can be solved by inserting <Ignore> before the character that is
+expression-mapped: >
+	nmap ! f!<Ignore>x
+
 Be very careful about side effects!  The expression is evaluated while
 obtaining characters, you may very well make the command dysfunctional.
 For this reason the following is blocked: