질문:zsh
명령줄을 실행하기 전에 확인하도록 가르치는 쉬운 방법이 있습니까 ? 추가 스크립트를 사용하여 특정 프로그램을 완전히 래핑할 수 있다는 것을 알고 있지만 그렇게 하고 싶지는 않습니다.
예:gcc
탭 완성을 사용하면 잘못된 호출을 통해 입력 파일을 덮어쓰는 상황이 발생하기 쉽습니다 .
gcc test.c -o test.c
바꾸다
gcc test.c -o test
답변1
accept-line
zle
원하는 모든 검사를 수행하도록 위젯을 재정의할 수 있습니다 . 예를 들면 다음과 같습니다.
accept-line() {
if [[ $BUFFER =~ '^gcc.*-o\s*\S*\.c\b' ]]; then
zle -M 'I will not do that!'
else
zle .$WIDGET "$@"
fi
}
zle -N accept-line