Intriguing idea. This would be very interesting to try with a Lisp or Scheme like language. Does it have any support for S-exp based languages?
https://atariwiki.org/wiki/Wiki.jsp?page=Lisp
Source is here: https://atariwiki.org/wiki/Wiki.jsp?page=LispEditor
If you really wanted a vi-like experience for editing lisp, you could figure out how to make an editor like that full-screen and interactive.
(defun double-all-the-things (things)
(mapcar (lambda (x) (* 2 x)) things))
would be straightforward to navigate through with an s-expr aware editor.