O problema não é que não se aplica a nano , é que não se aplica ao shell:
Basta definir a variável de ambiente VISUAL :
export VISUAL=vim
Adicione isso também ~ / .bashrc para torná-lo permanente.
Como você parece usar o vim em geral, defina ambos VISUAL e EDITOR :
export VISUAL="vim"
export EDITOR="$VISUAL"
ou mais POSIX-correto
VISUAL="vim" ; export VISUAL
EDITOR="$VISUAL" ; export EDITOR
Eu assumo que nano era o valor de uma ou ambas as variáveis.
Para fazer uso do editor no visudo, precisamos lidar com isso sudo não mantém as variáveis de ambiente normalmente. A opção -E muda isso.
sudo -E visudo
Sem o -E aqui, você acabaria com um padrão de nano novamente
As duas variáveis em uso muito antes dos arquivos chamados *.desktop ou mime* existirem.
(E o impressionante é que eles foram realmente usados como um padrão comum ).
No Ubuntu, o padrão do sistema parece estar definido com sudo update-alternatives --config editor . Ele mostra um menu para alterar a associação atual.
Veja a seção ENVIRONMENT em man visudo :
VISUAL Invoked by visudo as the editor to use
EDITOR Used by visudo if VISUAL is not set