zsh에 내장된 "r"이 공유 기록의 경우 로컬 기록만 고려하도록 만듭니다.

zsh에 내장된 "r"이 공유 기록의 경우 로컬 기록만 고려하도록 만듭니다.

r셸에 내장된 유틸리티를 zsh옵션 없이 사용하면 명령 기록에 있는 최신 명령을 다시 실행합니다.

이것의 문제는 기록을 공유하는 여러 셸 세션이 있는 경우( SHARE_HISTORY셸 옵션이 설정된 경우) 실수로 "비로컬" 셸 세션에서 명령을 실행하는 실수를 저지르기 쉽다는 것입니다. 이는 사용을 r잠재적으로 위험하게 만듭니다.

질문:r현재 셸 세션의 로컬 기록 이벤트만 고려 하도록 동작을 변경 하거나 rl로컬 이벤트만 고려하는 별도의 별칭이나 함수를 작성하려면 어떻게 해야 합니까?

(가장 최근 명령을 기억하고 편집하지 말고 실행하십시오) r와 동일해야 하기 때문에 아마도 동일한 작업을 사용 하거나 수행할 것이라고 생각했지만 어떤 이유로든 가장 최근 명령에서만 작동하는 것 같습니다.fc -e -r -Lfc -e - -L글로벌기록 이벤트는 현재 셸 세션에서 발생합니다. 그렇지 않은 경우 쉘은 오류를 보고합니다 fc: no matching events found.

zshzsh-5.8-0-g77d203fzsh-5.8p0OpenBSD 6.8 패키지 버전 5.8() 이 여기서 사용됩니다 .

접선적으로 관련된 질문:

답변1

r -L메일링 리스트에 물어보니 예상대로 동작하지 않는다는 사실이 버그로 여겨졌다 zsh-users.

이 오류는 수정되었습니다.2021년 2월 18일, Shell의 Git 개발 브랜치:

commit 6bef719302d6db33c63fb6f2636986dff1941ac2
Author: Peter Stephenson <retracted>
Date:   Thu Feb 18 21:37:08 2021 +0000

    users/26509: fix for r -L

    fc with the -L option should ignore remote entires, rather than
    reading them and treating them as an error.

관련 정보