web-dev-qa-db-ja.com

Sudo visudo時にデフォルトのエディターを変更する

Sudo visudoを実行する場合、デフォルトのエディターはnanoです。
viまたはvimに変更したい。

私はすでにvimをデフォルトのエディターにし、vim.desktopファイルを~/.local/share/applications/に配置し、いずれかを正しく編集することで、geditの代わりに使用してphp、.txt、.c、および.hファイルを開きます~/.local/share/applications/mimeapps.listまたは/etc/gnome/defaults.list。ただし、明らかにこれはnanoには適用されません。

どんな手掛かり ?

23
Cbhihe

問題は、nanoに適用されないことではなく、シェルに適用されないことです。

VISUAL環境変数を設定するだけです:

export VISUAL=vim

これも〜/ .bashrcを追加して永続的にします。

一般にvimを使用しているように見えるので、VISUALEDITORの両方を設定します。

export VISUAL="vim"
export EDITOR="$VISUAL"

より多くのPOSIX-correct

VISUAL="vim" ; export VISUAL
EDITOR="$VISUAL" ; export EDITOR

nanoは、1つまたは両方の変数の値だったと思います。

Visudoでエディターを実際に使用するには、Sudoが通常環境変数を保持しないことを処理する必要があります。オプション-Eはそれを変更します。

Sudo -E visudo

ここに-Eがなければ、デフォルトのnanoになります


*.desktopまたはmime*という名前のファイルが存在するずっと前に使用されていた2つの変数。
(そして印象的なことは、実際にcommon標準として使用されていたことです。)
Ubuntuでは、システムのデフォルトはSudo update-alternatives --config editorで設定されているようです。現在の関連付けを変更するメニューが表示されます。


man visudo のセクションENVIRONMENTを参照してください:

  VISUAL           Invoked by visudo as the editor to use

  EDITOR           Used by visudo if VISUAL is not set
19
Volker Siegel

この回答 で説明されているように、追加

Defaults editor=/path/to/editor

sudoersファイル に。

注:これは、編集中のファイルにDefaults editor=/path/to/editor行が含まれているか、それを含むファイルが含まれている場合にのみ機能します。

例:visudo -f /etc/sudoers.d/my_sudoers_extensionはデフォルトでNanoになります。

Nanoを使用する予定がない場合は、単にnanoを削除することもできます。次に、システムはvi/vimをデフォルトとして使用します。

Sudo apt-get purge nano

公式の答えではないことは知っていますが、Ubuntuをインストールした後の最初のコマンドの1つです。

3
Philipp Claßen