ルートとしてファイルを編集してsudo vim somefile.conf
使用する必要があり、キーバインドや設定、プラグインを使用できない場合、本当にイライラします。
ルートとして編集する必要があるときにすべてのカスタマイズを取得する方法はありますか?
プラグインにvim-plugを使用しています。
ルートとしてファイルを編集してsudo vim somefile.conf
使用する必要があり、キーバインドや設定、プラグインを使用できない場合、本当にイライラします。
ルートとして編集する必要があるときにすべてのカスタマイズを取得する方法はありますか?
プラグインにvim-plugを使用しています。
回答:
rootとしてvimを開くのではなく、teeにリダイレクトすることで単純にrootとして保存できます。以下に例を示します。
:w !sudo tee % > /dev/null
これは、.vimrcのエイリアスに役立つ場合があります:Sw
。
command! -nargs=0 Sw w !sudo tee % > /dev/null
I did a bunch of editing and then realized I should have used sudoedit
が、一般的な場合にはsudo -e
/ を使用することをお勧めしsudoedit
ます。
2つのこと:
を使用$ sudo -e file
して編集file
し$EDITOR
ます。まだ設定されていないexport EDITOR=/path/to/vim
場合$EDITOR
は追加します。
プラグイン依存症と戦うには、バニラに行くのが最適な方法です。
sudo vim
。編集は通常のユーザーとして行われ、sudoは元のファイルの更新を処理します。
sudo
:-E
と-e
。-E
「プリサーバー環境」を意味し、これはあなたが望むものではありません。-e
、順番に、「コマンドを実行しないで、定義された手順でファイルを編集する」ことを意味します。
あなたがしなければならないのは、シンボリックリンクのルート~/.vimrc
と~/.vim/
あなたのものであるように見えます。
ルートとして実行するだけです:
ln -s /home/<user>/.vimrc /root/.vimrc
ln -s /home/<user>/.vim/ /root/.vim/
そして、それはそれを行う必要があります!
(PS私は今これを理解し、他の初心者と共有したいと考えました。もっと良い方法があれば教えてください。)
ルートを使用してファイルを編集する必要があることが事前にわかっている場合は、コマンドを使用するsudoedit <file>
かsudo -e <file>
、通常のエディター設定で特別な環境でセットアップします。ファイルのコピーが作成され、エディターが起動して(ユーザーとして)編集します。終了すると、ファイルはルートとして元の場所にコピーされます。
これが最も安全で推奨される方法ですが、a)rootとして書き込む必要があることを事前に認識していない場合、またはb)増分変更をインプレースで編集および保存したい場合は、何か他のものが必要になります。この目的のためにsudo tee
、smplによって提案されたソリューションは間違いなく正しい軌道に乗っていますが、エッジケースを処理するために行うことができるいくつかの小さな改善があります。特に、GUIインターフェイスとコンソールインターフェイスでsudoパスワードプロンプトを処理する際の違いは、注目に値します。
これを設定する簡単な方法は、vim-eunuchプラグインを使用することです。この特定の問題と、いくつかの便利なものが便利なパッケージにまとめられています。使い方はを呼び出すのと同じくらい簡単:SudoWrite
です。私も少し便利なアクセスマッピングを使用します。
cmap w!! call SudoWrite()
これにより、を使用して任意のファイルをルートとして書き込むことができます:w!!
。
sudo vim file
と書く方が良いsudo -e file
(環境変数を設定する場合EDITOR=vim
)。