ルート時の設定とプラグイン( `sudo vim`)?


15

ルートとしてファイルを編集してsudo vim somefile.conf使用する必要があり、キーバインドや設定、プラグインを使用できない場合、本当にイライラします。

ルートとして編集する必要があるときにすべてのカスタマイズを取得する方法はありますか?

プラグインにvim-plugを使用しています。


5
サイドノート:sudo vim fileと書く方が良いsudo -e file(環境変数を設定する場合EDITOR=vim)。
lcd047

@ lcd047:あなたは答えにそのコメントをしなければならない
static_rtti

回答:


14

rootとしてvimを開くのではなく、teeにリダイレクトすることで単純にrootとして保存できます。以下に例を示します。

:w !sudo tee % > /dev/null

これは、.vimrcのエイリアスに役立つ場合があります:Sw

command! -nargs=0 Sw w !sudo tee % > /dev/null

4
これはに便利ですI did a bunch of editing and then realized I should have used sudoeditが、一般的な場合にはsudo -e/ を使用することをお勧めしsudoeditます。
ジェームスサン

7

2つのこと:

  1. を使用$ sudo -e fileして編集file$EDITORます。まだ設定されていないexport EDITOR=/path/to/vim場合$EDITORは追加します。

  2. プラグイン依存症と戦うには、バニラに行くのが最適な方法です。


-1プラグイン依存症の回復を提案するため(J / K、実際にはダウン投票なし)
ロビーWxyz

3
これは、vimをrootとして実行するわけではないことに注意してくださいsudo vim。編集は通常のユーザーとして行われ、sudoは元のファイルの更新を処理します。
ジェームスサン

注:2つの類似のオプションがにありますsudo-E-e-E「プリサーバー環境」を意味し、これはあなたが望むものではありません。-e、順番に、「コマンドを実行しないで、定義された手順でファイルを編集する」ことを意味します。
iksemyonov

3

あなたがしなければならないのは、シンボリックリンクのルート~/.vimrc~/.vim/あなたのものであるように見えます。

ルートとして実行するだけです:

ln -s /home/<user>/.vimrc /root/.vimrc
ln -s /home/<user>/.vim/ /root/.vim/

そして、それはそれを行う必要があります!

(PS私は今これを理解し、他の初心者と共有したいと考えました。もっと良い方法があれば教えてください。)


1
これにより、いくつかのvim関連ファイルがホームディレクトリにrootとして書き込まれ、後で独自のユーザーとして独自のvim設定を実行しようとするとエラーが発生するという問題がしばしば発生する可能性があります。
カレブ

0

ルートを使用してファイルを編集する必要があることが事前にわかっている場合は、コマンドを使用するsudoedit <file>sudo -e <file>、通常のエディター設定で特別な環境でセットアップします。ファイルのコピーが作成され、エディターが起動して(ユーザーとして)編集します。終了すると、ファイルはルートとして元の場所にコピーされます。

これが最も安全で推奨される方法ですが、a)rootとして書き込む必要があることを事前に認識していない場合、またはb)増分変更をインプレースで編集および保存したい場合は、何か他のものが必要になります。この目的のためにsudo tee 、smplによって提案されたソリューションは間違いなく正しい軌道に乗っていますが、エッジケースを処理するために行うことができるいくつかの小さな改善があります。特に、GUIインターフェイスとコンソールインターフェイスでsudoパスワードプロンプトを処理する際の違いは、注目に値します。

これを設定する簡単な方法は、vim-eunuchプラグインを使用することです。この特定の問題と、いくつかの便利なものが便利なパッケージにまとめられています。使い方はを呼び出すのと同じくらい簡単:SudoWriteです。私も少し便利なアクセスマッピングを使用します。

cmap w!! call SudoWrite()

これにより、を使用して任意のファイルをルートとして書き込むことができます:w!!


-1

もう1つのオプションは、実行sudo -E vim somefile.confして編集することです。これにより、環境が維持.vimrcされるため、プラグインが使用されます。


ねえ、良いトリック!これは、Viや他の多くのコマンドに役立ちます。
ロビーWxyz

3
これには、設定をルートのホームディレクトリにリンクするのと同じ副作用があります。つまり、状態データを書き込むvim操作またはプラグインは、ホームディレクトリでリンクします。これらのファイルは最終的にrootが所有することになり、通常のユーザーは引き続き使用できなくなるため、エラーが発生します。
カレブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.