tmux run-shell 명령에서 bash 기능 사용

tmux run-shell 명령에서 bash 기능 사용

별도의 tmux 창에서 레인저를 사용하여 vim에서 파일을 여는 기능을 구현하려고 합니다. .tmux.conf에서 직접 명령을 정의하면 작동합니다. 하지만 보기에 좋지 않은 코드가 너무 많아서 함수로 옮기고 .bashrc에서 가져오려고 했지만 'tmux__ranger_to_vim' returned 127tmux가 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-shellsh -csource 가 포함되어 있지 않으므로 명령을 실행하십시오 .bashrc. 또한 일부 시스템에서는 sh전혀 bash가 아니지만 dash.

bind-key t run-shell 'bash -c "source ~/.tmux.bash ; tmux__ranger_to_vim"'

관련 정보