小编ros*_*nas的帖子

vim - 根据模式设置状态行颜色的最佳方法是什么

我试图改善我的 vim 体验,试图在每次模式更改时更改 vim 状态行颜色。

我试过这个:(在这里找到)

    "Automatically change the statusline color depending on mode
function! ChangeStatuslineColor()
  if (mode() =~# '\v(n|no)')
    exe 'hi! StatusLine ctermfg=008'
  elseif (mode() =~# '\v(v|V)' || g:currentmode[mode()] ==# 'V·Block' || get(g:currentmode, mode(), '') ==# 't')
    exe 'hi! StatusLine ctermfg=005'
  elseif (mode() ==# 'i')
    exe 'hi! StatusLine ctermfg=004'
  else
    exe 'hi! StatusLine ctermfg=006'
  endif

  return ''
endfunction
Run Code Online (Sandbox Code Playgroud)

...包括:

set statusline+=%{ChangeStatuslineColor()} 
Run Code Online (Sandbox Code Playgroud)

但是有一个问题,如果你切换到插入模式,然后按 Esc 键回到正常模式,它不会改变颜色。只有当您手动进入不同的模式时,它才会变回颜色。

vim

7
推荐指数
1
解决办法
2828
查看次数

标签 统计

vim ×1