[4.13.12-1-Xorg에서 gnome3 및 gdm을 사용하는 ARCH]
VISUAL 및 EDITOR env-vars 를 vim
.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)" 편집기 "$( 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는 파일 편집 시 CPU를 100% 사용합니다.
답변2
자신의 사용자에 대한 변수를 설정하고 있지만 systemctl
루트( )로 sudo
명령을 실행하고 있습니다 . 따라서 사용자에 대해 설정한 변수는 관련이 없습니다.
이 문제를 해결하려면 다음을 수행할 수 있습니다(단, 1개 선택).
sudo
이렇게 실행하면-E
현재 환경이 내보내집니다.sudo -E systemctl edit _unit_
변수(
SYSTEMD_EDITOR
이것만 필요함)를 루트에 추가하십시오~/.profile
.export SYSTEMD_EDITOR="/bin/vi"
그런 다음 실행
sudo -i systemctl edit _unit_
마지막으로 편집기의 이름뿐만 아니라 전체 경로를 지정해야 합니다. 그렇습니다. /bin/vi
그리고 아니오 vim
.
답변3
나는 쉘 별칭을 사용합니다 :
sc='sudo SYSTEMD_EDITOR=/bin/vi /usr/bin/systemctl'
그럼 그냥:
sc edit service-name
systemctl
또한 restart
.
답변4
나를 위해 일한 유일한 방법은 다음과 같습니다.
- 루트 쉘(
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
를 설정하거나 sudo를 사용하여 루트 셸에서만 작동합니다 .VISUAL
SYSTEMD_EDITOR
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
.
그 이후에도 나에게 효과가 있었던 유일한 방법은 맨 위에 나열된 방법뿐이었습니다.