나는 Gambai 및 다른 제안 된 변형과 비교하여 더 나은 대답으로 다른 곳에서 비슷한 질문을 발견 했습니다. 그 이후로 더 좋습니다.
- 생성 된 파일을 tmp 폴더에 넣어 시스템에서 삭제할 수 있도록 처리합니다.
- 더 깨끗한 코드입니다 ( 감독의 답변을 함수로 변환 할 수는 있지만)
쉘 파일에는 이미 레인저의 git repo에있는 기능이 있습니다.
https://github.com/ranger/ranger/blob/master/examples/bash_automatic_cd.sh
function ranger-cd {
# create a temp file and store the name
tempfile="$(mktemp -t tmp.XXXXXX)"
# run ranger and ask it to output the last path into the
# temp file
ranger --choosedir="$tempfile" "${@:-$(pwd)}"
# if the temp file exists read and the content of the temp
# file was not equal to the current path
test -f "$tempfile" &&
if [ "$(cat -- "$tempfile")" != "$(echo -n `pwd`)" ]; then
# change directory to the path in the temp file
cd -- "$(cat "$tempfile")"
fi
# its not super necessary to have this line for deleting
# the temp file since Linux should handle it on the next
# boot
rm -f -- "$tempfile"
}
이 기능을 즐겨 사용하는 쉘 rc (예 :) ~/.zshrc
파일에 넣고 별명을 만들거나 키 조합에 바인딩 할 수 있습니다 (둘 다 rc 파일에 들어갈 수 있음).
alias nav=ranger-cd
그리고 / 또는
# This will run the function by Ctrl+O through returning
# the string "ranger-cd" in addition to a new-line character
# to act as Enter key-press
bindkey -s "^o" "ranger-cd\n"
: 면책 조항bindkey
zsh을에서 위의 작품과 당신이 원하는 쉘에 따라 변경해야
;
한 다음 세미콜론 다음에 더 많은 명령을 지정할 수 있습니다.-닫는 지점에서 실행된다고 가정합니다ranger
. 감사합니다!