Altera o editor padrão para vim para _ sudo systemctl edit [unit-file] _

8

[4.13.12-1-ARCH com gnome3 e gdm no Xorg]

Eu já defini minhas env-vars VISUAL e EDITOR para vim . Da mesma forma eu tentei SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR no meu ~ / .bashrc, sem sucesso.

Ao modificar arquivos unitários no Arch (systemd) via

 $ sudo systemctl edit _unit_ 

Eu me vejo olhando para nano . A vida é muito curta e eu quero vim por todos os meios. Como eu faço isso ?

    
por Cbhihe 02.12.2017 / 19:11

2 respostas

9

Você está configurando as variáveis para seu próprio usuário, mas está executando o comando systemctl como root ( sudo ). Portanto, as variáveis que você definiu para seu usuário são irrelevantes.

Para corrigir isso, você pode (mas continuar com 1):

  1. Execute sudo com -E para exportar o ambiente atual:

    sudo -E systemctl edit _unit_
    
  2. Adicione a variável (você precisa apenas de SYSTEMD_EDITOR para isso) em ~/.profile :

    da raiz
    export SYSTEMD_EDITOR="/bin/vi" 
    

    Em seguida, execute com

    sudo -i systemctl edit _unit_ 
    

Por fim, observe que você precisa especificar o caminho completo para o editor, não apenas o nome dele. Portanto, é /bin/vi e não vim .

    
por 02.12.2017 / 19:20
9

Você pode adicionar esta linha a ~/.bashrc ( gedit como exemplo, já que meu padrão já é vim.gtk3 ):

export SYSTEMD_EDITOR=gedit

E, em seguida, sudo visudo e adicione esta linha:

Defaults  env_keep += "SYSTEMD_EDITOR"

Inicie a nova sessão de bash para entrar em vigor e, em seguida, execute sudo systemctl edit <foo> como de costume.

Segunda maneira é usar update-alternatives :

Instale o seu editor desejado, por exemplo gedit :

$ type -a editor
editor is /usr/bin/editor
editor is /usr/bin/editor
$ sudo update-alternatives --install /usr/bin/editor editor "$(which gedit)" 5

Em seguida, escolha o seu desejado editor :

$ sudo update-alternatives --config editor
There are 7 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/vim.gtk3    50        auto mode
  1            /bin/ed             -100       manual mode
* 2            /bin/nano            40        manual mode
  3            /usr/bin/code        0         manual mode
  4            /usr/bin/gedit       5         manual mode
  5            /usr/bin/vim.basic   30        manual mode
  6            /usr/bin/vim.gtk3    50        manual mode
  7            /usr/bin/vim.tiny    15        manual mode

Press <enter> to keep the current choice[*], or type selection number: 4
update-alternatives: using /usr/bin/gedit to provide /usr/bin/editor (editor) in manual mode

A terceira maneira é definir diretamente o EDITOR no tempo de execução:

sudo EDITOR=gedit systemctl edit <foo>
    
por 02.12.2017 / 19:40