_ 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を使用します)。

  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/.bashrcsudo -i ...ただし、sudoをログインシェル()として実行することは考えていませんでした。対応するフラグを覚えておく必要があるため、どちらも非常に満足のいくものではありませんが、ちょっと...もっと悪いこともあると思います...それでも(おそらくそれは興味深いです)、私たちの一部にとって:(SYSTEMD_EDITOR=/usr/bin/vim; export SYSTEMD_EDITORルートとして)正しい。パスはすべて、最初にyr vimpkgをインストールした方法に依存します。さらに、ルートのPATHを定義したのでvim十分です。それを行う方法は1つだけではありません。@terdonに感謝します。
Cbhihe

1
@cbhiheああ、OK。私はちょうど試してみましたがvim、それが私がそれを言及した理由です。そしてちょっと、私はemacsユーザーです:)
テルドン

1
@Cbhiheは簡単な選択ではなかったと信じています。私も使用してテストしましたvim!物を閉じるのに3日かかった。
テルドン

21

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

export SYSTEMD_EDITOR=vim

そして、sudo visudo次の行を追加します。

Defaults  env_keep += "SYSTEMD_EDITOR"

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

2番目の方法はuse update-alternativesです:

必要なものをインストールしますeditor、例えばvim.gtk3

$編集者
エディターは/ 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>

優先順位は、first method> third method> second methodです。

以下のようなセットに「GUI」エディタを試みてはいけないgedit理由はなぜないgksuの/ gksudoまたはウェイランドとsudoの作業でグラフィカルアプリケーションを起動しますか?そして 、ファイルの編集中にGeditのは、CPUの100%を使用しています


1
林果皞に感謝しますが、私は本当にそうではvimありませんでしたgedit
Cbhihe

@Cbhihe geditは、GUIエディターでさえ動作していることを証明するための例にすぎませんvim。もちろん、この回答で使用できます。
林果皞

1
林さん、そうですね。実際、sudoersファイルを編集してyrソリューションを実装しましたsudo visudo...最初の応答を受け入れるのが速すぎました。私が探していたのは、/etc/suddoers提案されたとおりのファイルの修正です。yrソリューションを選択しないでいただきありがとうございます。私の悪い。
Cbhihe

[更新]回答を編集して、アドバイスを設定しないでくださいを追加しましたgedit
林果皞

0

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

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

できた

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.