_ sudo systemctl edit [unit-file] _의 기본 편집기를 vim으로 변경하십시오.


17

[Xorg에서 gnome3 및 gdm을 사용하는 4.13.12-1-ARCH]

VISUAL 및 EDITOR env-vars를 이미로 설정했습니다 vim. 마찬가지로 나는 SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR ~ / .bashrc를 시도했지만 아무 소용이 없었다.

다음을 통해 Arch (systemd)에서 단위 파일을 수정할 때

 $ sudo systemctl edit _unit_ 

나는 자신을 쳐다보고있다 nano. 인생은 너무 짧아서 꼭 원합니다 vim. 어떻게해야합니까?

답변:


13

자신의 사용자에 대한 변수를 설정하고 있지만 systemctl명령을 루트 ( sudo) 로 실행하고 있습니다. 따라서 사용자에 대해 설정 한 변수는 관련이 없습니다.

이 문제를 해결하려면 다음 중 하나를 수행하십시오.

  1. 다음 sudo-E같이 실행 하여 현재 환경을 내 보냅니다.

    sudo -E systemctl edit _unit_
    
  2. 변수를 ( SYSTEMD_EDITOR이것 만 필요 ) root에 추가하십시오 ~/.profile:

    export SYSTEMD_EDITOR="/bin/vi" 
    

    그런 다음

    sudo -i systemctl edit _unit_ 
    

마지막으로 이름뿐만 아니라 편집기의 전체 경로를 지정해야합니다. 따라서 /bin/vi그렇지 않습니다 vim.


나는 이미 sudo -E ...수정 한 후에 일하고 있었다 /root/.bashrc. sudo -i ...그러나 sudo를 로그인 쉘 ( ) 로 실행하지 않았다 . 해당 플래그를 기억해야 할 때 매우 만족 스럽지는 않지만, 더 나쁜 것이 있습니다. 아마도 ... 아직 (관심이있을 것입니다), 나는 우리 중 일부에게 : SYSTEMD_EDITOR=/usr/bin/vim; export SYSTEMD_EDITOR루트로) 권리. 경로 vim는 1 년에 yr pkg를 설치 한 방법에 따라 다릅니다 . 또한 루트에 대한 PATH를 정의 vim하면 충분합니다. 그것을하는 유일한 방법은 없습니다. @terdon에게 감사합니다.
Cbhihe

1
@cbhihe 아, 알았어. 나는 그냥 시도했지만 vim그것이 내가 언급 한 이유입니다. 그리고 야, 난 이맥스 사용자입니다 :)
terdon

1
@Cbhihe는 쉬운 선택이 아니라고 생각합니다. 나는 심지어 그것을 사용하여 그것을 테스트했다 vim! 물건을 닫는 데 3 일이 걸렸습니다.
terdon

22

첫 번째 방법은이 행을 ~/.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 또는 WAYLAND와 sudo는 작업과 그래픽 응용 프로그램을 시작? 그리고 파일을 편집하는 동안의 gedit는 CPU의 100 %를 사용합니다


1
덕분에林果皞,하지만 난 정말 의미 vim하지 gedit.
Cbhihe

@Cbhihe gedit는 GUI 편집기조차도 작동하고 있음을 증명하는 예일뿐입니다. 물론 vim이 답변과 함께 사용할 수 있습니다 .
林果 皞

1
林 さ ん, 네 말이 맞아. 사실 sudoers 파일을 편집하여 yr 솔루션을 구현했습니다 sudo visudo... 첫 번째 응답을 너무 빨리 받아 들였습니다. 내가 찾던 것은 /etc/suddoers파일을 제안한 그대로 수정 한 것입니다. yr 솔루션을 선택하지 않아 죄송합니다. 내 잘못이야.
Cbhihe

[업데이트] 조언을 설정하지 않기 위해 답변을 수정했습니다 gedit.
林果 皞

0

나는 Nano에 대한 인내심이 없으며 대포로 모기를 죽이는 것을 선호합니다.

Nano를 삭제하고 그 자리에 vim에 대한 심볼릭 링크를 배치합니다.

끝난.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.