tmux は "pane_current_command" を使用して vim の zsh を表示します。

tmux は

何らかの理由で、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は、ルビーのバージョンを切り替えるときに文句を言いません。

おすすめ記事