Ok so apparently the reason why ~ would be added on delete is because msysgit or something else (sh.exe?) thought the terminal was dead. Something like that. Apparently a known bug, but you can add this into ~/.bashrc to fix it: TERM=msys