[4.13.12-1-ARCH com gnome3 e gdm no Xorg]
Eu já defini meus env-vars VISUAL e EDITOR para vim
. Da mesma forma, tentei SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR
em meu ~/.bashrc, sem sucesso.
Ao modificar arquivos de unidade no Arch (systemd) via
$ sudo systemctl edit _unit_
Eu me pego encarando nano
. A vida é muito curta e eu quero vim
por todos os meios. Como eu faço isso ?
Primeiro método, você pode adicionar esta linha a
~/.bashrc
:E então
sudo visudo
e adicione esta linha:Inicie uma nova sessão bash para entrar em vigor e, em seguida, execute
sudo systemctl edit <foo>
como de costume.O segundo método é usar
update-alternatives
:Instale o desejado
editor
, por exemplovim.gtk3
:Então escolha o desejado
editor
:O terceiro método é definir diretamente o
EDITOR
tempo de execução:A precedência é primeiro método > terceiro método > segundo método .
Não tente definir o editor "GUI" como
gedit
porque não gksu/gksudo ou iniciar um aplicativo gráfico com sudo funciona com Wayland? e o Gedit usa 100% da CPU ao editar arquivosVocê está configurando as variáveis para seu próprio usuário, mas está executando o
systemctl
comando como root (sudo
). Portanto, as variáveis que você definiu para seu usuário são irrelevantes.Para corrigir isso, você pode (mas vá com 1):
Execute
sudo
com-E
para que ele exporte o ambiente atual:Adicione a variável (você só precisa
SYSTEMD_EDITOR
para isso) ao root~/.profile
:Então corra com
Por fim, observe que você precisa especificar o caminho completo para o seu editor, não apenas o nome. Então é
/bin/vi
e nãovim
.Eu uso um alias de shell:
Depois é só:
Também é útil para evitar digitar 7 dos 9 caracteres
systemctl
em casos comorestart
, etc.As únicas maneiras que funcionaram para mim são:
su
ousudo -i
), configurandoSYSTEMD_EDITOR=/usr/bin/vim
, entãosystemctl edit <unit>
SYSTEMD_EDITOR
, entãosudo -E systemctl edit <unit>
sudo SYSTEMD_EDITOR=/usr/bin/vim systemctl edit <unit>
Tentei definir
EDITOR
e para bashVISUAL
eSYSTEMD_EDITOR
zsh, para usuário e root, mas só funcionou a partir de um shell de root, definindo a variável apóssudo
, ou usando sudo com-E
.Também editei sudoers (
sudo visudo
) para adicionar:Defaults env_keep += "SYSTEMD_EDITOR"
Ainda assim, descobri que a variável não estava listada
sudo systemctl show-environment
, emborasudo echo $SYSTEMD_EDITOR
mostrasse o vim.Eu configurei a variável com:
sudo systemctl set-environment SYSTEMD_EDITOR=/usr/bin/vim
E confirmei com
sudo systemctl show-environment
.Mesmo depois disso, as únicas maneiras que funcionam para mim são as listadas no topo.