[4.13.12-1-ARCH 在 Xorg 上使用 gnome3 和 gdm]
我已经将 VISUAL 和 EDITOR env-vars 设置为vim
.同样,我在 ~/.bashrc 中尝试过SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR
,但无济于事。
当修改 Arch (systemd) 中的单元文件时
$ sudo systemctl edit _unit_
我发现自己盯着nano
。生命太短暂,我vim
无论如何都要。我该怎么做呢 ?
答案1
第一种方法,您可以将此行添加到~/.bashrc
:
export SYSTEMD_EDITOR=vim
然后sudo visudo
添加这一行:
Defaults env_keep += "SYSTEMD_EDITOR"
启动新的 bash 会话以生效,然后sudo systemctl edit <foo>
照常运行。
第二种方法是使用update-alternatives
:
安装你想要的editor
,例如vim.gtk3
:
$ 哪个编辑器 编辑器是/usr/bin/editor $ sudo update-alternatives --install "$(which editor)" editor "$(which vim.gtk3)" 15
然后选择您想要的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: 6
update-alternatives: using /usr/bin/vim.gtk3 to provide /usr/bin/editor (editor) in manual mode
第三种方法是直接设置EDITOR
运行时:
sudo EDITOR=vim systemctl edit <foo>
优先级是第一种方法 > 第三种方法 > 第二种方法。
不要尝试设置“GUI”编辑器,例如gedit
因为为什么 gksu/gksudo 或使用 sudo 启动图形应用程序不能与 Wayland 配合使用?和
Gedit 在编辑文件时使用 100% 的 CPU
答案2
您正在为自己的用户设置变量,但systemctl
以 root ( sudo
) 身份运行命令。因此,您为用户设置的变量是无关紧要的。
要解决此问题,您可以(但选择 1):
运行
sudo
so-E
它会导出当前环境:sudo -E systemctl edit _unit_
将变量(您只需要
SYSTEMD_EDITOR
这个)添加到 root 的~/.profile
:export SYSTEMD_EDITOR="/bin/vi"
然后运行
sudo -i systemctl edit _unit_
最后,请注意,您需要指定编辑器的完整路径,而不仅仅是其名称。所以是/bin/vi
又不是vim
。
答案3
我使用 shell 别名:
sc='sudo SYSTEMD_EDITOR=/bin/vi /usr/bin/systemctl'
然后只需:
sc edit service-name
systemctl
它对于通常避免在 等情况下键入 9 个字符中的 7 个也很有用restart
。
答案4
对我有用的唯一方法是:
- 根 shell (
su
或sudo -i
),设置SYSTEMD_EDITOR=/usr/bin/vim
,然后systemctl edit <unit>
- 设置
SYSTEMD_EDITOR
,然后sudo -E systemctl edit <unit>
sudo SYSTEMD_EDITOR=/usr/bin/vim systemctl edit <unit>
我尝试为 bash 和 zsh 设置EDITOR
and VISUAL
,SYSTEMD_EDITOR
为用户和 root 设置,但它只能在 root shell 中工作,在 后设置变量sudo
,或使用 sudo 与-E
。
我还编辑了 sudoers ( sudo visudo
) 添加:尽管如此,我发现即使显示了 vim,
Defaults env_keep += "SYSTEMD_EDITOR"
该变量也没有列出。sudo systemctl show-environment
sudo echo $SYSTEMD_EDITOR
我使用以下命令设置变量:
sudo systemctl set-environment SYSTEMD_EDITOR=/usr/bin/vim
并使用 进行确认sudo systemctl show-environment
。
即使在那之后,唯一对我有用的方法就是顶部列出的方法。