Cbh*_*ihe 41 vim editors systemd
[4.13.12-1-ARCH 在 Xorg 上使用 gnome3 和 gdm]
我已经将我的 VISUAL 和 EDITOR env-vars 设置为vim
. 同样,我确实SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR
在我的 ~/.bashrc 中尝试过,但无济于事。
在 Arch (systemd) 中修改单元文件时
$ sudo systemctl edit _unit_
Run Code Online (Sandbox Code Playgroud)
我发现自己盯着nano
. 人生苦短,我vim
无论如何都想要。我该怎么做呢 ?
Fru*_*uit 47
第一种方法,您可以将此行添加到~/.bashrc
:
export SYSTEMD_EDITOR=vim
Run Code Online (Sandbox Code Playgroud)
然后sudo visudo
并添加这一行:
Defaults env_keep += "SYSTEMD_EDITOR"
Run Code Online (Sandbox Code Playgroud)
启动新的 bash 会话以生效,然后sudo systemctl edit <foo>
照常运行。
第二种方法是使用update-alternatives
:
安装您想要的editor
,例如vim.gtk3
:
$哪个编辑器 编辑器是 /usr/bin/editor $ sudo update-alternatives --install "$(which 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
Run Code Online (Sandbox Code Playgroud)
第三种方法是直接设置EDITOR
运行时:
sudo EDITOR=vim systemctl edit <foo>
Run Code Online (Sandbox Code Playgroud)
优先顺序是第一种方法>第三种方法>第二种方法。
不要尝试设置“界面”编辑器,例如gedit
,因为为什么不gksu / gksudo或推出与韦兰须藤工作的图形应用程序吗?和
Gedit 在编辑文件时使用 100% 的 CPU
ter*_*don 22
您正在为自己的用户设置变量,但systemctl
以 root ( sudo
)身份运行命令。因此,您为用户设置的变量无关紧要。
要解决此问题,您可以(但选择 1):
运行sudo
以-E
导出当前环境:
sudo -E systemctl edit _unit_
Run Code Online (Sandbox Code Playgroud)将变量(你只需要SYSTEMD_EDITOR
这个)添加到 root 的~/.profile
:
export SYSTEMD_EDITOR="/bin/vi"
Run Code Online (Sandbox Code Playgroud)
然后运行
sudo -i systemctl edit _unit_
Run Code Online (Sandbox Code Playgroud)最后,请注意您需要指定编辑器的完整路径,而不仅仅是其名称。所以它是/bin/vi
和不是vim
。
我使用 shell 别名:
sc='sudo SYSTEMD_EDITOR=/bin/vi /usr/bin/systemctl'
Run Code Online (Sandbox Code Playgroud)
然后只需:
sc edit service-name
Run Code Online (Sandbox Code Playgroud)
systemctl
它对于通常避免在 等情况下键入 9 个字符中的 7 个也很有用restart
。