zsh에서 hist_verify 제한

zsh에서 hist_verify 제한

hist_verify특정 기록 명령을 우회할 수 있습니까 ? 예를 들어 유효성 검사 !$또는 가 거의 필요하지 !!않지만 더 복잡한 기록 확장에는 유효성 검사가 유용한 기능이라고 생각합니다. 선택한 기록 연산자를 기록 검증에서 제외할 수 있습니까?

답변1

어쩌면 다음과 같은 것일 수도 있습니다.

accept-line() {
  if [[ ${BUFFER//![\$!]} = *!* ]]; then
    set -o histverify
  else
    set +o histverify
  fi
  zle .$WIDGET
}
zle -N accept-line

~/.zshrc휴리스틱으로 추가하세요 . 즉, accept-line위젯을 재정의하여(time 에 호출할 때 Enter) 현재 행 histverify에 및 뒤에 !문자가 없는 경우에만 옵션이 설정되도록 합니다 .!$

echo '!e' !!이는 or 와 같은 명령줄에서는 어리석은 일 \!!rm이지만 허용 가능한 한계인 것 같습니다.

개인적으로 나는 set +o banghist내 항목에 추가 ~/.zshrc하고 종속성 history-search-backward(기본값은 모드에서 +에 바인딩 Alt) 또는 (나는 바인딩에 바인딩)을 선호합니다. 이렇게 하면 입력 시간이 절약되고 항상 A 시각적 피드백을 얻을 수 있습니다.pemacshistory-beginning-search-backwardPageUp

관련 정보