공동 관리자 구함 : 요즘 이 프로젝트를 유지 관리할 시간이 별로 없습니다. 누군가가 참여하여 공동 관리자가 되기를 원한다면 감사하겠습니다!
McFly는 기본 ctrl-r
셸 기록 검색을 작업 디렉터리와 최근 실행된 명령의 컨텍스트를 고려하는 지능형 검색 엔진으로 대체합니다. McFly의 제안은 작은 신경망을 통해 실시간으로 우선순위가 지정됩니다.
요약: 기록 결과가 현재 작업 중인 작업에 적합하도록 업그레이드된 ctrl-r
입니다.
ctrl-r
다시 바인딩합니다.%
입력할 수 있습니다. McFly의 주요 기능은 실시간으로 실행되는 소규모 신경망을 기반으로 하는 스마트 명령 우선순위 지정입니다. 목표는 실행하려는 명령이 항상 최고의 제안 중 하나가 되도록 하는 것입니다.
명령을 제안할 때 McFly는 다음을 고려합니다.
mcfly
설치합니다:
brew install mcfly
~/.bashrc
, ~/.zshrc
또는 ~/.config/fish/config.fish
파일 끝에 다음을 추가합니다.
세게 때리다:
eval " $( mcfly init bash ) "
Zsh:
eval " $( mcfly init zsh ) "
물고기:
mcfly init fish | source
달리다 . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
또는 터미널 에뮬레이터를 다시 시작하세요.
mcfly
제거: brew uninstall mcfly
~/.bashrc
/ ~/.zshrc
/ ~/.config/fish/config.fish
에 추가한 줄을 제거하세요.포트 트리 업데이트
sudo port selfupdate
mcfly
설치합니다:
sudo port install mcfly
~/.bashrc
, ~/.zshrc
또는 ~/.config/fish/config.fish
파일 끝에 다음을 적절하게 추가합니다.
세게 때리다:
eval " $( mcfly init bash ) "
Zsh:
eval " $( mcfly init zsh ) "
물고기:
mcfly init fish | source
달리다 . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
또는 터미널 에뮬레이터를 다시 시작하세요.
mcfly
제거: sudo port uninstall mcfly
~/.bashrc
/ ~/.zshrc
/ ~/.config/fish/config.fish
에 추가한 줄을 제거하세요. curl -LSfs https://raw.githubusercontent.com/cantino/mcfly/master/ci/install.sh | sh -s -- --git cantino/mcfly
(또는 현재 사용자에게 /usr/local/bin을 편집할 권한이 없는 경우 sudo sh -s
사용하십시오.)
~/.bashrc
, ~/.zshrc
또는 ~/.config/fish/config.fish
파일 끝에 각각 다음을 추가합니다.
세게 때리다:
eval " $( mcfly init bash ) "
Zsh:
eval " $( mcfly init zsh ) "
물고기:
mcfly init fish | source
달리다 . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
또는 터미널 에뮬레이터를 다시 시작하세요.
GitHub에서 최신 릴리스를 다운로드하세요.
$PATH
의 위치에 설치합니다. (예를 들어 ~/bin
에 디렉터리를 만들고 mcfly
이 위치에 복사한 다음 .bashrc
/ .zshrc
에 export PATH="$PATH:$HOME/bin"
추가하거나 set -Ua fish_user_paths "$HOME/bin"
실행할 수 있습니다. set -Ua fish_user_paths "$HOME/bin"
물고기용입니다.)
~/.bashrc
, ~/.zshrc
또는 ~/.config/fish/config.fish
끝에 각각 다음을 추가합니다.
세게 때리다:
eval " $( mcfly init bash ) "
Zsh:
eval " $( mcfly init zsh ) "
물고기:
mcfly init fish | source
달리다 . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
또는 터미널 에뮬레이터를 다시 시작하세요.
Rust 1.40 이상 설치
git clone https://github.com/cantino/mcfly
및 cd mcfly
실행
cargo install --path .
~/.cargo/bin
$PATH
에 있는지 확인하세요.
~/.bashrc
, ~/.zshrc
, ~/.config/fish/config.fish
또는 powershell $PROFILE
끝에 각각 다음을 추가합니다.
세게 때리다:
eval " $( mcfly init bash ) "
Zsh:
eval " $( mcfly init zsh ) "
물고기:
mcfly init fish | source
Powershell 코어(pwsh)
Invoke-Expression - Command $ (mcfly init powershell | out-string )
달리다 . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
/ . $PROFILE
또는 터미널 에뮬레이터를 다시 시작하세요.
zshrc에 아래 코드를 추가하세요.
zinit ice lucid wait " 0a " from " gh-r " as " program " atload ' eval "$(mcfly init zsh)" '
zinit light cantino/mcfly
mcfly를 다운로드하여 설치합니다.
$(mcfly init zsh)
프롬프트 후에 실행됩니다.
McFly의 UI가 iTerm2의 스크롤백 기록을 엉망으로 만드는 것을 방지하려면 이 옵션을 선택 취소하세요.
McFly는 명령 기록을 stdout 으로 덤프할 수 있습니다.
예를 들어:
mcfly dump --since ' 2023-01-01 ' --before ' 2023-09-12 09:15:30 '
2023-01-01 00:00:00.0 에서 2023-09-12 09:15:30 ( 제외 ) 사이에 실행되는 명령을 json 으로 덤프합니다. --format csv
통해 csv를 덤프 형식으로 지정할 수도 있습니다.
덤프된 명령의 각 항목에는 다음 필드가 있습니다.
cmd
: 실행 명령입니다.when_run
: 현지 시간대로 명령이 실행된 시간입니다.인수 없이 모든 명령 기록을 덤프할 수 있습니다.
mcfly dump
McFly는 다음 예외를 제외하고 systemd.time의 엄격하지 않은 구현인 chrono-systemd-time
통해 타임스탬프를 구문 분석합니다.
McFly 사용자는 타임스탬프에 시간대를 지정하는 것이 허용되지 않는다는 점만 이해하면 됩니다. McFly는 항상 현지 시간대를 사용합니다.
자세한 내용은 chrono-systemd-time
문서를 참고하세요.
덤프는 정규식을 사용한 필터링 명령을 지원합니다. 정규식 구문은 크레이트 정규식을 따릅니다.
예를 들어:
mcfly dump -r ' ^cargo run '
cargo run
으로 모든 명령 접두어를 덤프합니다.
-r/--regex
및 시간 옵션을 동시에 사용할 수 있습니다.
예를 들어:
mcfly dump -r ' ^cargo run ' --since ' 2023-09-12 09:15:30 '
2023-09-12 09:15:30 이후로 실행된 cargo run
과 함께 모든 명령 접두사를 덤프합니다.
환경 변수를 통해 다양한 설정을 지정할 수 있습니다. 설정을 지정하려면 ~/.bashrc
/ ~/.zshrc
/ ~/.config/fish/config.fish
에 다음 코드 조각을 추가해야 합니다.
라이트 터미널에서 사용할 색 구성표를 바꾸려면 환경 변수 MCFLY_LIGHT
설정하세요.
배쉬 / zsh:
export MCFLY_LIGHT=TRUE
물고기:
set -gx MCFLY_LIGHT TRUE
파워셸:
$ env: MCFLY_LIGHT = " TRUE "
팁: macOS에서는 시스템 전체 설정에 따라 색 구성표를 구성하기 위해 다음 코드 조각을 사용할 수 있습니다.
배쉬 / zsh:
if [[ " $( defaults read -g AppleInterfaceStyle 2 & > /dev/null ) " != " Dark " ]] ; then
export MCFLY_LIGHT=TRUE
fi
기본적으로 Mcfly는 emacs
영감을 받은 키 체계를 사용합니다. vim
영감을 받은 키 체계로 전환하려면 MCFLY_KEY_SCHEME
환경 변수를 설정하세요.
배쉬 / zsh:
export MCFLY_KEY_SCHEME=vim
물고기:
set -gx MCFLY_KEY_SCHEME vim
파워셸:
$ env: MCFLY_KEY_SCHEME = " vim "
유사 항목 검색을 활성화하려면 MCFLY_FUZZY
정수로 설정하세요. 0은 꺼져 있습니다. 숫자가 높을수록 짧은 일치 항목에 가중치가 부여됩니다. 지금까지는 2-5 범위의 값이 좋은 결과를 얻었습니다. 몇 가지를 시도해 보고 가장 적합한 것이 무엇인지 알려주세요!
배쉬 / zsh:
export MCFLY_FUZZY=2
물고기:
set -gx MCFLY_FUZZY 2
파워셸:
$ env: MCFLY_FUZZY = 2
표시되는 최대 결과 수를 변경하려면 MCFLY_RESULTS
설정합니다(기본값: 10).
배쉬 / zsh:
export MCFLY_RESULTS=50
물고기:
set -gx MCFLY_RESULTS 50
파워셸:
$ env: MCFLY_RESULTS = 50
확인 없이 삭제하려면 MCFLY_DELETE_WITHOUT_CONFIRM
true로 설정하세요.
배쉬 / zsh:
export MCFLY_DELETE_WITHOUT_CONFIRM=true
물고기:
set -gx MCFLY_DELETE_WITHOUT_CONFIRM true
파워셸:
$ env: MCFLY_DELETE_WITHOUT_CONFIRM = " true "
인터페이스 뷰를 변경하려면 MCFLY_INTERFACE_VIEW
설정합니다(기본값: TOP
). 사용 가능한 옵션: TOP
및 BOTTOM
배쉬 / zsh:
export MCFLY_INTERFACE_VIEW=BOTTOM
물고기:
set -gx MCFLY_INTERFACE_VIEW BOTTOM
파워셸:
$ env: MCFLY_INTERFACE_VIEW = " BOTTOM "
메뉴 인터페이스를 비활성화하려면 환경 변수 MCFLY_DISABLE_MENU
를 설정하십시오.
배쉬 / zsh:
export MCFLY_DISABLE_MENU=TRUE
물고기:
set -gx MCFLY_DISABLE_MENU TRUE
파워셸:
$ env: MCFLY_DISABLE_MENU = true
표시되는 결과의 정렬을 변경하려면 MCFLY_RESULTS_SORT
(기본값: RANK)를 설정하세요. 가능한 값은 RANK
및 LAST_RUN
배쉬 / zsh:
export MCFLY_RESULTS_SORT=LAST_RUN
물고기:
set -gx MCFLY_RESULTS_SORT LAST_RUN
파워셸:
$ env: MCFLY_RESULTS_SORT = " LAST_RUN "
프롬프트를 변경하려면 MCFLY_PROMPT
설정합니다(기본값: $
).
배쉬 / zsh:
export MCFLY_PROMPT= " ❯ "
물고기:
set -gx MCFLY_PROMPT " ❯ "
파워셸:
$ env: MCFLY_PROMPT = " > "
단일 문자 프롬프트만 허용됩니다. MCFLY_PROMPT
"<str>"
로 설정하면 기본 프롬프트로 재설정됩니다.
McFly는 SQLite 데이터베이스를 OS의 표준 위치에 저장합니다. OS X에서는 ~/Library/Application Support/McFly
에 있고 Linux에서는 $XDG_DATA_DIR/mcfly/history.db
(기본값은 ~/.local/share/mcfly/history.db
)에 있으며 Windows에서는 , %LOCALAPPDATA%McFlydatahistory.db
입니다. 레거시 지원의 경우 ~/.mcfly/
가 있으면 대신 사용됩니다.
매우 큰 기록 데이터베이스가 있고 McFly가 느리게 시작되는 것을 발견한 경우 MCFLY_HISTORY_LIMIT
10000과 같은 값으로 설정하여 검색 시 고려되는 레코드 수를 제한할 수 있습니다. 이 예에서 McFly는 최신 10,000개의 항목만 검색합니다.
Linux 커널 버전 6.2부터 일부 시스템에서는 TIOCSTI(이전에 McFly가 선택한 명령을 작성하는 데 사용함)를 비활성화했습니다. McFly는 두 개의 "더미" 키 바인딩을 사용하여 이 문제를 해결합니다. 기본값은 ctrl-x 1
및 ctrl-x 2
입니다. 다른 목적으로 이들 중 하나를 사용하는 경우 MCFLY_BASH_SEARCH_KEYBINDING
및 MCFLY_BASH_ACCEPT_LINE_KEYBINDING
각각 사용하지 않는 것으로 설정할 수 있습니다. 레거시 TIOCSTI 동작을 사용하려면 시스템에서 sysctl
변수 dev.tty.legacy_tiocsti
1
로 설정하고 MCFLY_BASH_USE_TIOCSTI
bash 변수를 1
로 설정하여 이를 활성화할 수 있습니다.
McFly는 현재 HISTTIMEFORMAT
구문 분석하거나 사용하지 않습니다.
기여와 버그 수정이 권장됩니다! 그러나 프로젝트를 유지하는 데 이미 필요한 것 이상으로 복잡성을 크게 증가시키는 PR을 병합할 수는 없습니다. 의심스러운 경우에는 문제를 열어 질문해 보세요.
cargo test
Cargo.toml
편집하고 버전을 올리세요.cargo clippy
및 cargo fmt
실행하십시오.cargo build
) 및 테스트( cargo test
)git add -p
git ci -m 'Bumping to vx.x.x'
git tag vx.xx
git push origin head --tags
cargo publish
오래된:
pkg/brew/mcfly.rb
편집하고 버전과 SHA를 업데이트합니다. ( shasum -a 256 ...
)../homebrew-mcfly/pkg/brew/mcfly.rb
도 편집하세요.cp pkg/brew/mcfly.rb ../homebrew-mcfly/pkg/brew/mcfly.rb
diff ../homebrew-mcfly/pkg/brew/mcfly.rb ../mcfly/pkg/brew/mcfly.rb ; diff ../homebrew-mcfly/HomebrewFormula/mcfly.rb ../mcfly/HomebrewFormula/mcfly.rb
git add -p && git ci -m 'Update homebrew' && git push
cd ../homebrew-mcfly && git add -p && git ci -m 'Update homebrew' && git push && cd ../mcfly