_ sudo systemctl edit [unit-file] _에 대해 기본 편집기를 vim으로 변경합니다.

_ sudo systemctl edit [unit-file] _에 대해 기본 편집기를 vim으로 변경합니다.

[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개 선택).

  1. sudo이렇게 실행하면 -E현재 환경이 내보내집니다.

    sudo -E systemctl edit _unit_
    
  2. 변수( 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를 사용하여 루트 셸에서만 작동합니다 .VISUALSYSTEMD_EDITORsudo-E

sudoers( )도 편집하여 다음을 추가했습니다. 그런데 sudo visudovim을 표시했는데도
Defaults env_keep += "SYSTEMD_EDITOR"
변수가 나열되지 않는 것을 발견했습니다.sudo systemctl show-environmentsudo echo $SYSTEMD_EDITOR

다음을 사용하여 변수를 설정하고
sudo systemctl set-environment SYSTEMD_EDITOR=/usr/bin/vim
을 사용하여 확인합니다 sudo systemctl show-environment.

그 이후에도 나에게 효과가 있었던 유일한 방법은 맨 위에 나열된 방법뿐이었습니다.

관련 정보