tmux는 "pane_current_command"를 사용하여 vim의 zsh를 표시합니다.

tmux는 "pane_current_command"를 사용하여 vim의 zsh를 표시합니다.

어떤 이유로 Tmux는 zsh필요할 때 vim출력을 표시합니다 #{pane_current_command}. 이로 인해 제대로 작동하기 위해 Tmux에 의존하는 tmux의 vim 인식 창 이동 명령이 엉망이 됩니다.

# vim aware commands
# pane/split switching
bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-h) || tmux select-pane -L" #left
bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-j) || tmux select-pane -D" #down
bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-k) || tmux select-pane -U" #up
bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-l) || tmux select-pane -R" #right
bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys 'C-\\') || tmux select-pane -l" #next
# pane/split creation
bind | run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-w && tmux send-keys v) || tmux split-window -h" #verticle
bind - run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-w && tmux send-keys s) || tmux split-window -v" #horizontal
# pane/split close
bind x run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-w && tmux send-keys q) || tmux kill-pane "

별칭을 통해 vim을 시작합니다.

alias vim='rbenv only -r 2.3.5 -c "/usr/local/bin/vim" $@'

실제로 문제를 일으키는 별칭입니다. 이 문제를 어떻게 해결합니까? 현재 프로세스의 이름을 설정할 수 있는 방법이 있습니까?

찾았 jobs -Z지만 별칭에서는 작동하지 않는 것 같습니다.

답변1

글쎄요, @B-Layer가 남긴 댓글을 본 후, 제가 사용하고 있던 별칭을 대체하기 위해 간단한 bash 함수를 만들었고, 이를 통해 케이크도 먹고 먹을 수도 있었습니다!

기능:

function vim()
{
    cmd="exec /usr/local/bin/vim $@"
    rbenv only -r $GLOBAL_RUB_VERSION -c "$cmd";
}

이제 rbenv만 사용하여 vim을 시작할 수 있으므로 vim이 컴파일된 것과 동일한 버전의 Ruby로 항상 시작됩니다. 이제 (노래와 춤을 위해) YouCompleteMe는 루비 버전을 전환할 때 불평/충돌을 하지 않습니다.

관련 정보