sudo visudoのときにデフォルトのエディターを変更する


23

行うsudo visudo場合、デフォルトのエディタはnanoです。または
に変更したいです。 vivim

私はすでに作られたvimデフォルトのエディタを、との代替としてそれを使用するgeditに置くことによって、オープンPHP、.TXT、.Cおよび.hファイルにvim.desktopしてファイルを~/.local/share/applications/、正しくどちらか編集して ~/.local/share/applications/mimeapps.list/etc/gnome/defaults.list。ただし、明らかにこれは適用されませんnano

どんな手掛かり ?


チェックしたman visudo
fkraiem 14年

私はそれを書いてからさらにいくつかのことを発見しました-後でさらに追加したいと思っています。Linuxディストリビューションはそれを異なる方法で処理します。
フォルカーシーゲル14年

はい、私はenv-var VISUALをvimに設定し、.bashrcおよび.bash_profileで「エクスポート」し、シェルをソースしましたが、使用できません。確実に確認するために、セッションでログアウトして再ログインします。
Cbhihe

2
sudo -E visudoは答えの後半を追加しました、あなたはそれを試しましたか?-Eはsudo、すべてのenv変数を削除しません。Ubuntuはラインを持っているので、それはないDefaults env_reset/etc/sudoers
フォルカー・シーゲル

また、update-alternatives私も追加しましたか?
フォルカーシーゲル14年

回答:


19

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

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

export VISUAL=vim

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

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

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

より多くのPOSIX-correct

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

nanoどちらか一方または両方の変数の値だったと思います。

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

sudo -E visudo

なければ-E、ここで、あなたは、デフォルトで終わるだろうnano再び


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


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

  VISUAL           Invoked by visudo as the editor to use

  EDITOR           Used by visudo if VISUAL is not set

1
試しましたか?デフォルトsudoでは、実行するコマンドの環境からほとんどの環境変数を設定解除します。VISUAL=vim sudo visudo(およびあなたが提案するバリエーション)は私にとっては機能せず、機能すると期待されるべきではありません。sudo VISUAL=vim visudoただし、動作します。ちなみに(私だけ。確かに、両方を再び試してみた)、VISUALおよびEDITORに設定されていない、デフォルトでは設定解除されていますnano。デフォルトの構成で選択するメカニズムVISUALEDITORはありません(それらを参照し、それらが設定されていないか空白であると判断し、次に進む場合を除く)。visudonano
エリアケイガン14年

3
それは動作しますsudo -E visudo-確かに答えにあるはずです、正しい。
フォルカーシーゲル14年

+1と私はあなたの素晴らしい答え、Volkerを受け入れます。「Bestk Dank!」環境変数を渡すことを許可されていないというエラーメッセージが-Eフラグとともに表示されますが、アクセスが制限されているユーザーからadmin-privilegeとbingoを使用するユーザーにsu!しました。すべてうまくいきます。
Cbhihe 14年

ああ、間違った/役立つことができるものをもう1つ追加できてうれしいです;)Default/ etc / sudoers のオプション(の付いた行)を確認できますか?私はそれを禁止するオプションがあると思うが、それは私のデフォルトのファイルにはなかった。
フォルカーシーゲル14年

@VolkerSiegel:/ etc / sudoersのデフォルトのenv_resetを参照していると思います。私の場合、それはまさにそのように設定されています。
Cbhihe

8

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

Defaults editor=/path/to/editor

sudoersファイル

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

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


2
+1:いいですね。このスレッドを最初に始めたときは気がつきませんでした。ありがとう。
-Cbhihe

3

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

sudo apt-get purge nano

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


これは間違いなく「ネクロポスティング」の資格がありますが、ちょっと... Yrの答えは興味深いです。Ubuntuを扱っているからです。他のいくつかのディストリビューション(ArchLinuxなど)には、最初にインストールしたエディターのみがあるため、Ubuntuで遭遇したpbmも、提案する手段に頼る必要もありません。手元のケース(ubuntu + nano + vim)では、多くの人がエディターの観点からオプションを必要とするかもしれないと感じています。1人のユーザーのプロファイルに似たようなものがほとんど見られずemacsvim積極的に共存しているのは事実です。しかしnano、そして、vim一緒に野生で起こります...キープnano
Cbhihe

間違いなくベストアンサー
botkop

emacsそして、vim喜んで共存しないと常に使用されています。nano害虫のように、システムからより早く除去されるほど良いです。一部の人は快適だと思うかもしれませんが、この答えは完全に有効です。
メンタム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.