ZSH-전체 기록을 출력 하시겠습니까? 사용하는 것이

최근에 bash에서 zsh로 전환했습니다. 내가 이전에 실행 명령했다 찾는 데 사용하는 것이 (재귀 검색 이외의) bash는, 하나의 방법으로 history | grep whatever어디, whatever내가 기억하는 명령의 비트입니다.

zsh에서는 작동하지 않습니다. history.zsh_history파일에 많은 항목이 포함되어 있어도 몇 가지 항목 만 반환합니다 .

검색에 적합한 전체 기록을 어떻게 출력 할 수 grep있습니까?



답변

히스토리는 zsh 항목의 범위를 [first] [last]인수 로 허용 하므로 모두 실행 history 0합니다.

Alt-h히스토리 명령에 zsh 도움말 (적어도 염두에 두어)을 입력 하면 내장 도움말이 표시됩니다.


답변

허용되는 대답은 정확하지만 검색을 수행하기 위해 외부 이진을 호출 할 필요 는 없습니다 .grep.zshrc

histsearch() { fc -lim "*$@*" 1 }

노트:

  • fc대화식 히스토리를 제어하는 ​​zsh 내장입니다. history와 같습니다 fc -l.

  • -m플래그는 인용되어야하는 패턴을 필요로한다.

  • -i플래그는 타임 스탬프를 추가합니다.

  • fc는 더 많은 트릭을 가지고 있습니다 (예 : 현재 세션의 내부 기록으로 검색 제한). zshbuiltins(1)매뉴얼 페이지 또는 공식 문서를 참조하십시오 .


답변

fzf를 살펴 보십시오 . 쉘 히스토리뿐만 아니라 브라우저 히스토리, 디렉토리 히스토리 등과 같은 다른 흥미로운 위치에서도 “무슨 입자”를 찾는 데 도움이됩니다.

fzf는 명령 행 퍼지 파인더입니다. 즉, 찾고있는 입자 또는 분수를 검색 할 수 있으며 지속적으로 구체화 할 수있는 일치 항목이 표시됩니다. 정말 게임 체인저입니다.

저자 의 홈페이지 에는 많은 예시가 들어 있습니다.