挿入モードのときにカーソルの形状を変更したいのですが、tmuxを使ってssh-ingするときに正しく設定するのに問題があります。Vim:tmux + ssh上のカーソル形状の追加
- ローカルのtmuxセッションの外でsshを実行し、リモートのtmuxセッションの外部でVimを開くと、カーソルの形状が働きます(挿入モードでは垂直バー)。
- ローカルtmuxセッションの外でsshを実行し、リモートtmuxセッション内でVimを開くと、カーソルシェイプが機能します。
- ローカルのtmuxセッションの内部でsshを実行していて、リモートのtmuxセッションの外でVimを開くと、カーソルの形状が壊れてしまいます(挿入モードのブロック)。
- ローカルのtmuxセッションの内部でsshを実行していて、リモートのtmuxセッション(ネストされたtmux;私の優先設定)でVimを開くと、カーソルの形状が壊れてしまいます。
- ローカルのtmuxセッション内でローカルにVimを開くと、cursorshapeが機能します(つまり、tmuxとsshの組み合わせで何か問題が起きています;ローカルのtmuxはローカルで問題ありません)。
私のローカルマシンはOS Xシエラ、私のリモートマシンを実行している私は要求された場合、これらは他の人を掲示し、関連するすべてのドットファイルの設定だと思いますCentOSの7です:
===両方のローカルで~/.tmux.conf
(およびリモートマシン)===
set-option -g default-terminal "screen-256color"
set-option -g xterm-keys on
リモートマシン上=== ~/.vimrc
()===
if empty($TMUX)
let &t_SI = "\<Esc>]50;CursorShape=1\x7" " Vertical bar in insert mode
let &t_EI = "\<Esc>]50;CursorShape=0\x7" " Block in normal mode
else
let &t_SI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=1\x7\<Esc>\\"
let &t_EI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0\x7\<Esc>\\"
endif
if &term =~ '^screen'
" tmux will send xterm-style keys when its xterm-keys option is on
execute "set <xUp>=\e[1;*A"
execute "set <xDown>=\e[1;*B"
execute "set <xRight>=\e[1;*C"
execute "set <xLeft>=\e[1;*D"
endif
注釈として、カーソルの形状は、これらの場合のいずれにおいても、moshでは機能しないようです。私はこれがmoshの限界だと思っていますが、誰かがmoshと一緒に働く方法を持っていると、それが特に役立ちます。
iTerm2を使用している場合は、[vitality.vim](https://github.com/sjl/vitality.vim)を参照してください。 –
iTerm2のtmux統合の使用は嫌です。活力がその統合なしでこの問題に役立つなら、私はそれを試してみましょう。 – Kvass
AFAIK、その統合は独立しており、活力のために必要ではありません。 –