Bashタブ完了テキストの削除

Bashタブ完了テキストの削除

私のbashタブの完成が奇妙な動作をするDebianシステムを持っています。このようなコマンドを作成してscp file.tgz remoteServer:/home/remoteUタブをクリックすると、scp file.tgz /home/remoteUserホスト参照の終了が完了します。sshこのようなリモートディレクトリを参照するコマンド関連コマンドを使用すると、これが発生します。

bash 完了設定を確認した結果、テスト前にコロンの削除に関する内容が見つかりませんでした。コロンが動作を引き起こすと疑われるからです。また、興味深いのは、正しいディレクトリを取得するために最初にリモートシステムを照会することです。

どんな提案がありますか?

答え1

.bashrcからダウンロードするには、この行をファイルに追加しますCOMP_WORDBREAKS

COMP_WORDBREAKS=${COMP_WORDBREAKS//:}

以下は、ソースコードのこの関数に基づいた剪定です。

__ltrim_colon_completions()
{
    if [[ "$1" == *:* && "$COMP_WORDBREAKS" == *:* ]]; then
        # Remove colon-word prefix from COMPREPLY items
        local colon_word=${1%"${1##*:}"}
        local i=${#COMPREPLY[*]}
        while [[ $((--i)) -ge 0 ]]; do
            COMPREPLY[$i]=${COMPREPLY[$i]#"$colon_word"}
        done
    fi
}

関連情報