Something to think about: vim sets various terminal settings via tcsetattr, and also sends various "start mode X" (for instance, keypad transmit mode) sequences. It's possible that one of these triggers the odd behavior in screen/xfce4-terminal. Worth looking into. Screen may also be triggering the bug in xfce4-terminal in a similar way. Need to trace a few processes, especially to determine whether screen itself is receiving ^@ characters from the delete key, or if it is receiving ^? and transforming it into ^@. One possible way to check for the latter might be to have a multi-session with an xfce4-terminal and a different terminal (such as gnome-terminal) viewing the same terminal session: if gnome-terminal sees ^? while xfce4-terminal sees ^@, when typing <delete> from within xfce4-terminal, then we know that the transformation is occurring within screen.
Something to think about: vim sets various terminal settings via tcsetattr, and also sends various "start mode X" (for instance, keypad transmit mode) sequences. It's possible that one of these triggers the odd behavior in screen/ xfce4-terminal. Worth looking into. Screen may also be triggering the bug in xfce4-terminal in a similar way. Need to trace a few processes, especially to determine whether screen itself is receiving ^@ characters from the delete key, or if it is receiving ^? and transforming it into ^@. One possible way to check for the latter might be to have a multi-session with an xfce4-terminal and a different terminal (such as gnome-terminal) viewing the same terminal session: if gnome-terminal sees ^? while xfce4-terminal sees ^@, when typing <delete> from within xfce4-terminal, then we know that the transformation is occurring within screen.