Mnem으로 검색하는 엑스트라 퍼지 히스토리

2150 단어 rustshellshowdev
저는 ripgrep , fd , dust 등 Rust 명령줄 도구를 많이 사용합니다. 그래서 더 나은 명령줄 쥐덫에 대한 나만의 아이디어가 생겼을 때, 그것이 가야 할 길인 것 같았습니다.

쉘은 기록 파일에 입력한 명령을 기록합니다. Bash는 .bash_history , zsh는 .histfile 를 사용합니다. 후자의 EXTENDED_HISTORY 옵션은 타임스탬프를 추가하지만 그만큼 멋집니다. 두 셸(및 아마도 다른 것)에는 한 번에 한 줄씩 앞뒤로 볼 수 있는 "역 검색"기능도 있습니다.



기능의! 그러나 특별히 친절하지는 않습니다. 한 번에 하나의 결과만 보면 유사한 여러 일치 항목을 평가하기 어렵습니다. 내 오타에서 볼 수 있듯이 일치는 엄격하게 선형입니다. 연대순은 때때로 가장 유용한 순서입니다.

저는 AWS CLI, SaltStack 및 기타 복잡한 명령줄 인터페이스로 많은 일을 합니다. 호출을 비교하여 과거에 동사와 플래그를 어떻게 결합했는지 확인하고 싶습니다. 작업을 수행하는 방법을 잊을 정도로 자주 반복하는 작업의 경우 전체 빈도로 정렬하는 것이 시간으로 정렬하는 것보다 더 유용합니다.

Enter Mnem (안타깝게도 몇 주 만에 역사의 뮤즈인 clio를 받지 못했습니다.)



아이디어는 매우 간단합니다. 기록 파일을 로드하고 모든 명령을 구문 구조로 줄입니다. git commit -m "some message here"git commit -m <val>가 됩니다. mv "hither" "thither"mv <arg1> <arg2>로 바뀝니다. 많은 항목은 특히 스위치가 일관되게 정렬된 경우 동일한 구조를 가지므로 발생 횟수를 세면 각 구조의 전체 인기도가 산출됩니다.

이러한 집합체 하나를 선택하면 원래 발생률에 대한 두 번째 선택기가 생성되고 그 중 하나를 선택하면 표준 출력으로 인쇄됩니다. 이것은 셸에서 참조, 복사 및 붙여넣기 또는 편집할 수 있습니다eval.

지금까지 Mnem을 Arch AUR 및 Homebrew 탭으로 릴리스했습니다.

brew tap dmfay/mnem https://gitlab.com/dmfay/homebrew-mnem.git
brew install dmfay/mnem/mnem

좋은 웹페이지 즐겨찾기