Je pense que ~ est defini en sh, donc ca devrait marcher dans n'importe quel shell.
Au niveau de emacs et vim, c'est une grande question/troll.
Dans l'ensemble emacs fait BEAUCOUP plus de chose que vim. Et c'est ce que lui reproche les utilisateurs de vim. Ca en est a un point ou c'est ridicule (il y a un navigateur web dans emacs, un client de mail, de newsgroup, un lecteur de pdf, un editeur de video...)
Personnellement, j'apprecie le confort d'utilisation que m'apporte emacs au quotidien. Et la modalite de vim a tendance a me rendre fou. Mais la majorite de ce forum te dira que les raccourcis clavier de emacs sont inutilisable et qu'il faut 3 bras pour l'utiliser correctement.