O Vi que você está usando é provavelmente o Vim (desde que você esteja em um sistema Linux).
O Vim tem uma opção backup que tem o efeito de criar um backup do arquivo existente no disco antes de salvar o buffer atual. O backup terá o mesmo nome do arquivo original, mas com ~ anexado ao final do nome do arquivo.
Para ativar esse recurso, adicione
set backup
para o seu arquivo ~/.vimrc .
Para alterar a extensão de backup, defina backupext como o sufixo desejado:
set backup
set backupext=.bak
Você também pode alterar onde os backups são armazenados definindo backupdir como um nome de diretório. O valor padrão de backupdir é .,~/tmp,~/ . Isso significa que o Vim primeiro tenta salvar o backup no diretório atual ( . ), mas se isso falhar (por qualquer motivo) ele tenta novamente com ~/tmp e, em seguida, novamente com ~/ .
Veja também :help backup de dentro do Vim.
O Vi não possui esse recurso.