使vim中的活动窗口更加明显

DrH*_*yde 27 vim colors

我的工作区通常是一个非常大的带有 vim 的 xterm,分成六个或更多缓冲区。如果哪个是活动缓冲区更明显,那将非常有帮助。现在我正在使用行号的存在:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set number
    autocmd WinLeave * set nonumber
augroup END
Run Code Online (Sandbox Code Playgroud)

但这意味着当我更改缓冲区时,我的代码向左或向右跳转,这很烦人。另外,即使在非活动缓冲区中,我也希望能够看到第 94 行。那么有没有办法改变活动缓冲区中行号的颜色?

fgb*_*fgb 33

按照您的模板,您可以改变不同的属性,例如 colorcolumn:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set colorcolumn=80
    autocmd WinLeave * set colorcolumn=0
augroup END
Run Code Online (Sandbox Code Playgroud)

这将为当前窗口的第 80 列着色,同时在其他窗口中禁用它。它比设置/取消设置行号更不刺耳。

如果您习惯于突出显示当前行(设置 cul),则一个更不干扰的选项是:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set cul
    autocmd WinLeave * set nocul
augroup END
Run Code Online (Sandbox Code Playgroud)

这一切都取决于您的使用情况以及您愿意忍受的情况。


rom*_*inl 16

状态行的颜色是了解哪个窗口处于活动状态的最常用方法。它在您的配色方案中使用以下两行定义:

hi StatusLine   ctermfg=15  guifg=#ffffff ctermbg=239 guibg=#4e4e4e cterm=bold gui=bold
hi StatusLineNC ctermfg=249 guifg=#b2b2b2 ctermbg=237 guibg=#3a3a3a cterm=none gui=none
Run Code Online (Sandbox Code Playgroud)

第一个用于当前窗口,第二个用于“非当前”窗口。

这是xoria256的摘录,您应该根据您的配色方案调整颜色。

但是您可以尝试类似的操作(请注意,第二行中的颜色是完全随机的):

augroup NrHighlight
  autocmd!
  autocmd WinEnter * hi LineNr ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212
  autocmd WinLeave * hi LineNr ctermfg=274 guifg=#e9e9e9 ctermbg=133 guibg=#212121
augroup END
Run Code Online (Sandbox Code Playgroud)


blu*_*yed 7

另请参阅我的插件,它使非活动窗口变暗:https : //github.com/blueyed/vim-diminactive


小智 5

这就是我所做的:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set relativenumber
    autocmd WinLeave * set norelativenumber
augroup END
Run Code Online (Sandbox Code Playgroud)

相对数只是用于计算命令重复量的辅助工具,它们在您未编辑的窗口中没有用处。