zsh - 명령을 실행하기 전에 명령 매개변수를 확인하세요.

zsh - 명령을 실행하기 전에 명령 매개변수를 확인하세요.

질문: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

관련 정보