별도의 tmux 창에서 레인저를 사용하여 vim에서 파일을 여는 기능을 구현하려고 합니다. .tmux.conf에서 직접 명령을 정의하면 작동합니다. 하지만 보기에 좋지 않은 코드가 너무 많아서 함수로 옮기고 .bashrc에서 가져오려고 했지만 'tmux__ranger_to_vim' returned 127
tmux가 run-shell
정의된 함수를 볼 .bashrc
수 없는 이유는 무엇입니까? ?
.bashrc
function tmux__current_pane_has_process {
test -n "$1" || { echo "No process name" >&2; return 1; }
pattern='^[^TXZ ]+ +'"${1}"'$'
ps -o state= -o comm= | grep -iqE "$pattern"
}
function tmux__ranger_to_vim {
tmux__current_pane_has_process 'ranger' || return 0
tmux send-keys 'y'
sleep .01
tmux send-keys 'p'
tmux select-pane -L
tmux__current_pane_has_process 'n?vim' || return 0
tmux send-keys ':tabe ' C-r * C-m
}
.tmux.conf
bind-key t run-shell "tmux__ranger_to_vim"
답변1
tmux run-shell
sh -c
source 가 포함되어 있지 않으므로 명령을 실행하십시오 .bashrc
. 또한 일부 시스템에서는 sh
전혀 bash가 아니지만 dash
.
bind-key t run-shell 'bash -c "source ~/.tmux.bash ; tmux__ranger_to_vim"'