解決策 1:
ラークスの答えはおそらく最も可能性が高いです。 root アカウント vi を vim に永久に変更したくない場合があります。リソースが少ない場合、vi はほぼ常に動作することが保証されていますが、vim についてはよくわかりません。
おそらく (色) を使用しています
/usr/bin/vim
通常のユーザーと
の下で/bin/vi
sudo または root の下。以下を使用して確認できます。
which vi
1 回は通常のユーザーの下で、もう 1 回は sudo 経由で
sudo which vi
する
man which
詳細が必要な場合
解決策 2:
RHEL システムでは、/bin/vi 通常、vim の最小バージョンです 、構文の強調表示はサポートされていません。 /usr/bin/vim フル機能のエディターです。あなたのユーザー環境では vi である可能性が非常に高いです vim のエイリアスです .これを試してください:
sudo vim /some/file
シンタックス ハイライトは表示されますか?
解決策 3:
あなたの vi おそらく /bin/vi です パッケージ vim-minimal から 構文の強調表示をサポートしていません。 sudo vi /bin/vi を起動します
Bash は、コマンド ラインの最初の単語でのみエイリアス展開を行うため、次のようになります。
sudo vi
vi vim に代入されません そのエイリアスが定義されていても。
解決策 別のエイリアスを定義する (sudo を呼び出すユーザー用) ):
alias sudo='sudo'
2 番目の sudo の後のスペースに注意してください .
この sudo を使用する 、bash は vi のエイリアス展開を行います sudo vi で . alias で Bash doc のセクションには次のように書かれています:
エイリアス値の最後の文字が空白の場合、エイリアスに続く次のコマンド ワードもエイリアス展開のためにチェックされます。
コマンドを入力したら、 Ctrl を押すことができます +Alt +E bash で 拡張結果を表示します。
クレジット:
https://bbs.archlinux.org/viewtopic.php?id=36796
http://www.shellperson.net/using-sudo-with-an-alias
単純に vi をエイリアシングする /root/.bashrc で 動作しません。
vi であることにも注意してください。 一部のディストリビューションでは、/etc/profile.d/vim.sh で root のエイリアスが設定されていません:
if [ -n "$BASH_VERSION" -o -n "$KSH_VERSION" -o -n "$ZSH_VERSION" ]; then
[ -x /usr/bin/id ] || return
ID=`/usr/bin/id -u`
[ -n "$ID" -a "$ID" -le 200 ] && return
# for bash and zsh, only if no alias is already set
alias vi >/dev/null 2>&1 || alias vi=vim
fi
これを変更しても問題は解決しません。
解決策 4:
5.4 ではデフォルトで vi がデフォルトです。どのバージョンで開始されたか忘れました。これにより、必要なエイリアスが追加されます:
cat <<_EOF >>/root/.bashrc
alias "vi"="/usr/bin/vim"
_EOF
解決策 5:
私のバージョンのvimでそれを見つけました(sudo apt-get install vimでインストールします Debian 7 では syntax on コマンドは ~/.vimrc でユーザーごとに定義されています .ただし、デフォルトでは、インストールは /root/.vimrc を作成しませんでした sudo vi のファイル ロードします。 ~/.vimrc をコピーしました /root/ に dir とこれはトリックを行いました:sudo cp ~/.vimrc /root/