Bash 탭 완료 텍스트 삭제

Bash 탭 완료 텍스트 삭제

내 bash 탭 완성이 이상한 동작을 하는 데비안 시스템을 가지고 있습니다. 이와 같은 명령을 작성 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
}

관련 정보