__vi_internal_vim_alias 回避策: コマンドが見つかりませんか?

__vi_internal_vim_alias 回避策: コマンドが見つかりませんか?

最近、私のコンピュータをFedora 33(Linux 5.9.16-200)にアップグレードしました。私はvim Enhancedバージョン8.2を実行しています。管理者権限でファイルを編集しようとするとsudo vim(も)入力すると、sudo vi次のエラーが発生します。

sudo: __vi_internal_vim_alias: command not found

この問題の原因が何であるかよくわかりません。 Vimはsudoなしで正常にロードされます。この問題を解決する方法を教えてください。ありがとうございます。


修正する: を実行した後、which vim次のような結果が得られます。

alias vim='__vi_internal_vim_alias'
    __vi_internal_vim_alias ()
    { 
        ( test -f /usr/bin/vim && exec /usr/bin/vim "$@";
        test -f /usr/bin/vi && exec /usr/bin/vi "$@" )
    }

これが何をしているのか、どこで起こったのかよくわかりません。たぶんこれはFedora 33の問題かもしれません。上記の情報を考慮して、永久修正として何をお勧めしますか?

ベストアンサー1

Fedora 33でも同じ問題が発生しました。これはsudo私の環境で定義されているエイリアスによるものです。

$ alias sudo
alias sudo='\sudo '

したがって、bashは、sudo次の例のように、エイリアスに引数として渡されたエイリアスを何らかの方法で確認します。

$ alias foo='echo foo'
$ sudo foo
foo

私はこれが欲しかったです:

$ sudo foo
$ sudo: foo: command not found

このエイリアスを削除すると私に役立ちました。このエイリアスは/usr/local/bin/alias.shプロジェクトsynth-shellhttps://github.com/andresgongora/synth-shell)

おすすめ記事