CentOSを使用しており、.vimrc
ディレクトリに/home
ファイルを作成しました。私はtxtファイルを作成してテストしましたが、そうです。 SELinuxがオンになっている/srv
ディレクトリにプロジェクトファイルがあります。ファイルを開こうとしました:vim README.txt
とはい、.vimrc
の設定がまだ適用されています。
今、私は/srv
ディレクトリにいるので、単にvim
を実行すると、ファイルは読み取り専用になります。そのため、ファイルを編集できるようにするためにSudo vim README.txt
を実行します。ここで問題は、Sudo
を実行すると、.vimrc
の設定がまったく適用されないことです。 .vimrc
フォルダに/srv
のコピーを作成しようとしましたが、それも機能しませんでした。
Sudo
の使用中に.vimrc
設定を適用するにはどうすればよいですか?
Sudo vim
の代わりにsudoedit
を使用してください。とにかくそうすべきです。 EDITOR
環境変数がvim
に設定されていることを確認してください(おそらくすでに設定されているか、vim
がデフォルトです。必要に応じて.profile
アナログで設定できますあります)。
here のように、以下を使用できます。
Sudo -E vim README.txt
Manページから:
-E The -E (preserve environment) option indicates to the security policy that the user wishes to preserve their existing environment variables. The
security policy may return an error if the -E option is specified and the user does not have permission to preserve the environment.
受け入れられた答えが最も安全です。ただし、これはSudo -E operation
を任意の操作で使用できるため、より柔軟であり、事前に他の設定を行う必要はありません。
他の応答で提示された解決策は機能しますが、ファイルを編集するたびにパスワードを入力する必要があるため、あまり実用的ではありません。
私は通常tmux
セッションを開いており、その中でSudo su
を介してルートされているので、セッションの最初に一度パスワードを入力すると、再度入力しなくても何時間も作業できます。
次のシンボリックリンクを作成することにより、ここで提示された問題を回避しました:Sudo su ln -s /home/MY-USER-NAME/.vimrc .vimrc ln -s /home/MY-USER-NAME/.vim .vim
最初に/root/.vim/
ディレクトリを削除する必要がある場合があります。
これが役に立てば幸い
/root/.vimrcはSudo vimの作業ディレクトリです。
/ home/ec2-user/.vimrcから/ root/.vimrcに.vimrcファイルをコピーする必要があります