解決策 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/