YouFirst method, you can add this line to ~/.bashrc (gedit as example, since my default is already vim.gtk3):
export SYSTEMD_EDITOR=geditSYSTEMD_EDITOR=vim
Second waymethod is use update-alternatives:
Install your desired editor, e.g. geditvim.gtk3:
$ type -awhich editor
editor is /usr/bin/editor
editor is /usr/bin/editor
$ sudo update-alternatives --install /usr/bin/editor"$(which editor)" editor "$(which geditvim.gtk3)" 515
$ 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: 46
update-alternatives: using /usr/bin/geditvim.gtk3 to provide /usr/bin/editor (editor) in manual mode
Third waymethod is direct set the EDITOR on runtime:
sudo EDITOR=geditEDITOR=vim systemctl edit <foo>
The precedence are first method > third method > second method.
Don't try to set "GUI" editor such as gedit because Why don't gksu/gksudo or launching a graphical application with sudo work with Wayland? and
Gedit uses 100% of the CPU while editing files