ルート所有のファイルをSudo vim
ではなくsudoedit
で編集する習慣を身につけようとしています。これにはいくつかの利点がありますが、その1つは、ユーザーの~/.vimrc
を使用することです。
Sudo vimdiff
を使用する代わりに、同等のものはありますか?
vimdiff
を直接使用する代わりに、2つのファイルを垂直分割で開き、両方で:diffthis
を実行できます。ただし、1つのファイルをsudoedit
で開くと、sudoedit
が/var/tmp
にこのファイルのコピーを自動的に作成するのではなく、2番目のファイルを直接開く必要があります。vim -O file1 file2
を使用して、ファイルを分割して直接開くこともできます。ただし、当然のことながら、sudoedit -O
は失敗します。実行するエディターを決定するために、Sudo
は3つの環境変数(Sudo_EDITOR
、VISUAL
、およびEDITOR
)を(順番に)チェックし、最初に見つかったエディターを使用します。 (見つからない場合は、デフォルトにフォールバックします。)
したがって、次のように、vimの代わりにvimdiffを実行させることができます。
$ VISUAL=vimdiff sudoedit file1 file2
Sudoersポリシーで特定のファイルのみを編集できる場合、これは失敗する可能性があります。その場合、パラメーターを追加できます。
$ VISUAL='vimdiff file1' sudoedit file2
その場合、通常のユーザーとしてfile1
を読み取ることができると想定していますが、file2
を読み取るにはrootアクセスが必要です。
(私はVISUAL
を使用しています。これは、私が慣れているためです。代わりにSudo_EDITOR
を自由に使用してください。)
これは厄介な解決策です。お気軽に最適化してください!おそらくこれは~/vimrc
で機能する可能性がありますか?
sudoedit
で両方のファイルを開きます
$ sudoedit file1 file2
:vsp | b2
各ウィンドウで、
:diffthis