Altera o editor padrão quando o sudo visudo

21

Ao fazer sudo visudo , o editor padrão é nano .
Quero alterá-lo para vi ou vim .

Já fiz vim o editor padrão e uso-o como um substituto para gedit para abrir arquivos php, .txt, .c e .h, colocando um arquivo vim.desktop em ~/.local/share/applications/ e por editando corretamente ~/.local/share/applications/mimeapps.list ou /etc/gnome/defaults.list . No entanto, aparentemente isso não se aplica a nano .

Alguma pista?

    
por Cbhihe 01.10.2014 / 22:46

3 respostas

16

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
    
por Volker Siegel 01.10.2014 / 23:42
8

Conforme descrito em esta resposta , adicione

Defaults editor=/path/to/editor

para o arquivo sudoers .

Observação: isso só funcionará se o arquivo que está sendo editado contiver a linha Defaults editor=/path/to/editor ou incluir um arquivo que o contenha.

Por exemplo: visudo -f /etc/sudoers.d/my_sudoers_extension será o padrão para Nano.

    
por Muhamed Huseinbašić 19.01.2017 / 16:29
1

Se você nunca planeja usar o nano, também pode simplesmente removê-lo. Então o sistema usará o vi / vim como padrão.

sudo apt-get purge nano

Eu sei que não é a resposta oficial, mas é um dos primeiros comandos para mim depois de instalar o Ubuntu.

    
por Philipp Claßen 11.01.2018 / 17:58