Vim 如果我';m处于插入模式还是正常模式?

Vim 如果我';m处于插入模式还是正常模式?,vim,zsh,tmux,gnome-terminal,Vim,Zsh,Tmux,Gnome Terminal,我习惯于使用gvim,但我想利用vim+tmux的优点。因此,我想换成vim。但是在vim中,光标样式不会根据我所处的模式而改变,这是gvim的一个有用特性。我使用zsh(哦,我的zsh)和gnome终端下面的 我试着回答: 但这会在全球范围内改变光标。肯定是我不想要的东西 接下来,我尝试了这个插件:,但它也不起作用。对于颜色,我使用的是: let &t_SI = "\<Esc>]12;yellow\x7" let &t_SR = "\<Esc>]12;r

我习惯于使用gvim,但我想利用vim+tmux的优点。因此,我想换成vim。但是在vim中,光标样式不会根据我所处的模式而改变,这是gvim的一个有用特性。我使用zsh(哦,我的zsh)和gnome终端下面的

我试着回答:

但这会在全球范围内改变光标。肯定是我不想要的东西


接下来,我尝试了这个插件:,但它也不起作用。

对于颜色,我使用的是:

let &t_SI = "\<Esc>]12;yellow\x7"
let &t_SR = "\<Esc>]12;red\x7"
let &t_EI = "\<Esc>]12;blue\x7"
其中我有:

   :
   :
elseif a:mode == 'i'
    "echo " ColoursBasedOnMode insert mode"
    "set nonumber
    "set norelativenumber

    colorscheme railscasts 
         :
         :

仅为此终端仿真器设置终端选项。 正如这里所指出的:

let&t\u SI=“\]12;橙色\x7”
让&t\u EI=“\]12;红色\x7”
请安静!echo-ne“\033]112\007”
  • 将端子光标设置为“输入插入模式”
  • 将终端光标设置为左插入模式
  • 在左侧vim上重置默认(灰色)颜色
  • 或许,vim插件正是您所需要的:

    在“插入”模式下,光标形状将更改为细竖条。在替换模式下,它将更改为下划线。返回正常模式后,它将恢复为标准的“块”形状。配置选项用于在不同形状之间进行选择


    它看起来适合我的需要,但也不起作用。你能想象为什么吗?看来我完全误读了你的帖子。我已经删除了我的答案。可能是重复的谢谢你,但你到底把代码放在哪里了?在vimrc里?
    " solid underscore
    "  let &t_SI .= "\<Esc>[4 q"
    
    " solid block
    " let &t_EI .= "\<Esc>[1 q"
      " 1 or 0 -> blinking block
      " 3 -> blinking underscore
      " Recent versions of xterm (282 or above) also support
      " 5 -> blinking vertical bar
      " 6 -> solid vertical bar
    
    au VimLeave    * let &t_EI = "\<Esc>]12;white\x7"
    au VimLeavePre * :!echo -ne "\033]12;white\000"
    au VimLeavePre * let &t_SI = "\<Esc>]12;white\x7"
    
    au InsertEnter * call ColoursBasedOnMode(v:insertmode)
    au InsertLeave * call ColoursBasedOnMode('n')
    autocmd BufWinEnter,BufNew * call ColoursBasedOnMode('n')
    
       :
       :
    elseif a:mode == 'i'
        "echo " ColoursBasedOnMode insert mode"
        "set nonumber
        "set norelativenumber
    
        colorscheme railscasts 
             :
             :
    
     let &t_SI = "\<Esc>]12;orange\x7"
     let &t_EI = "\<Esc>]12;red\x7"
     autocmd VimLeave * silent !echo -ne "\033]112\007"