web-dev-qa-db-ja.com

_ Sudo systemctl edit [unit-file] _のデフォルトエディターをvimに変更します

[4.13.12-1-Arch with gnome3 and gdm on Xorg]

私はすでにVISUALとEDITORのenv-varsをvimに設定しています。同様に私はSYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR私の〜/ .bashrcで、役に立ちません。

Arch(systemd)でユニットファイルを変更する場合

 $ Sudo systemctl edit _unit_ 

私はnanoを見つめています。人生は短すぎるので、私はvimをぜひとも求めています。どうすればよいですか?

21
Cbhihe

自分のユーザーの変数を設定していますが、systemctlコマンドをroot(Sudo)として実行しています。したがって、ユーザーに設定した変数は関係ありません。

これを修正するには、次のいずれかを実行します(ただし1を使用)。

  1. -Eを指定してSudoを実行し、現在の環境をエクスポートします。

    Sudo -E systemctl edit _unit_
    
  2. 変数(これにはSYSTEMD_EDITORのみが必要です)をルートの~/.profileに追加します。

    export SYSTEMD_EDITOR="/bin/vi" 
    

    次に、

    Sudo -i systemctl edit _unit_ 
    

最後に、エディタの名前だけでなく、フルパスを指定する必要があることに注意してください。つまり、vimではなく/bin/viです。

14
terdon

最初の方法では、この行を~/.bashrcに追加できます。

export SYSTEMD_EDITOR=vim

次にSudo visudoを追加して、次の行を追加します。

Defaults  env_keep += "SYSTEMD_EDITOR"

新しいbashセッションを開始して有効にし、通常どおりSudo systemctl edit <foo>を実行します。

2番目の方法は、update-alternativesを使用することです。

必要なeditorをインストールします。 vim.gtk3

$ which editor 
 editor is /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

3番目の方法は、実行時にEDITORを直接設定することです。

Sudo EDITOR=vim systemctl edit <foo>

優先順位は最初のメソッド> 3番目のメソッド> 2番目のメソッドです。

geditなどの「GUI」エディターを設定しようとしないでください なぜgksu/gksudoを行わないか、またはSudoでWaylandを使用してグラフィカルアプリケーションを起動しないのですか? および Geditファイルの編集中にCPUを100%使用します

25
林果皞

私はナノに忍耐がなく、大砲で蚊を殺すことを好みます。

Nanoを削除し、その場所にvimへのシンボリックリンクを配置します。

できました。

0
Daniel Baker

シェルエイリアスを使用します。

sc='Sudo SYSTEMD_EDITOR=/bin/vi /usr/bin/systemctl'

次にちょうど:

sc edit service-name

また、systemctlなどの場合に、restartの9文字のうち7文字を入力しないようにするのにも役立ちます。

0
Tom Hale