I have removed the dependency on libg++ by recoding all references to String. I thought about making a String class that derives from string and emulates the features we use. I may still do that if there are too many bugs in the recoded version.
The problem is that these keys will then not be sent to the Java server, spoiling controls that handle keystrokes. Currently, only TextComponents deprive the Java end of printing keys. The solution, I think, is to have the Java end handle the vi-mode for everything except TextComponents, consistent with our guiding principle above.