+
+ "https://coderwall.com/p/if9mda/automatically-set-paste-mode-in-vim-when-pasting-in-insert-mode
+ " https://ttssh2.osdn.jp/manual/en/usage/tips/vim.html
+ function! WrapForScreenTmux(s)
+ if (&term =~ "screen")
+ let scr_start = "\<Esc>P"
+ let scr_end = "\<Esc>\\"
+
+ return scr_start . a:s . scr_end
+ endif
+
+ if exists('$TMUX')
+ let tmux_start = "\<Esc>Ptmux;"
+ let tmux_end = "\<Esc>\\"
+
+ return tmux_start . substitute(a:s, "\<Esc>", "\<Esc>\<Esc>", 'g') . tmux_end
+ endif
+
+ return a:s
+ endfunction
+
+ " https://vim.fandom.com/wiki/Change_cursor_shape_in_different_modes
+ let &t_EI.=WrapForScreenTmux("\e[2 q") "EI = NORMAL mode (ELSE)
+ let &t_SI.=WrapForScreenTmux("\e[6 q") "SI = INSERT mode
+ if v:version >= 800
+ let &t_SR.=WrapForScreenTmux("\e[4 q") "SR = REPLACE mode
+ endif
+
+ "Cursor settings:
+ " 1 -> blinking block
+ " 2 -> solid block
+ " 3 -> blinking underscore
+ " 4 -> solid underscore
+ " 5 -> blinking vertical bar
+ " 6 -> solid vertical bar