【问题标题】:Disable cursor(current) line highlight for vim + tmux禁用 vim + tmux 的光标(当前)行突出显示
【发布时间】:2014-12-30 19:59:06
【问题描述】:

我正在使用 tmux + vim。与 vim 拆分窗口不同,每当我将焦点移到 tmux 中的不同窗格时,行高亮不会像下图那样关闭。

红线是光标线,我将焦点移到底部 tmux 窗格,但顶部窗格 vim 光标线仍然突出显示。

当我离开 tmux 窗格时,我想关闭光标线突出显示,并且只有当前 tmux 窗格的突出显示线。 有人知道怎么做吗?

我对行高亮的 vim 设置是

""""""""""""""""""""""""""""""""""""
" Cursor line highlight
hi CursorLine   cterm=NONE ctermbg=darkred guibg=darkred 
hi CursorColumn cterm=NONE ctermbg=darkred guibg=darkred 
" hlight current line current window only
augroup CursorLine
    au!
    au VimEnter,WinEnter,BufWinEnter * setlocal cursorline
    au WinLeave * setlocal nocursorline
augroup END
""""""""""""""""""""""""""""""""""""

====== 编辑 1 ======

au VimEnter,WinEnter,BufWinEnter,FocusGained,CmdwinEnter * setlocal cursorline
au WinLeave,FocusLost,CmdwinLeave * setlocal nocursorline

也不行。

=====================

【问题讨论】:

  • 你在 tmux 中得到FocusLost,FocusGained 事件吗?然后你就可以使用这些了。
  • 作为单线程并在单独的 shell 中运行使得顶级会话无法知道您将其留给另一个会话,因此这听起来像 非常 不平凡任务。为什么不直接使用 Vim 的窗口?
  • @IngoKarkat,我试过 FocusLost,Gained。但是在燕尾服里面,vim 认为它一直都是焦点。
  • @romainl,我想在编辑源代码时运行几个终端程序。即我编辑 python 脚本并在不同的 tmux 窗格上调试它们。

标签: vim tmux


【解决方案1】:

如果您使用的是 iTerm2,您可以使用开箱即用的 sjl/vitality.vim 插件(即恢复 FocusLost/FocusGained 功能)(根据自述文件,我无法尝试)。

akracun/vitality.vim fork 为其他终端提供了功能(根据提交日志,xterm/uxterm,尽管对我来说它在 gnome-term 上完美运行)。

从 tmux 1.9a 开始,您需要:

  • set -g focus-events on 添加到您的.tmux.conf 中
  • let g:vitality_tmux_can_focus = 1 添加到您的.vimrc 中

然后

au VimEnter,WinEnter,BufWinEnter,FocusGained,CmdwinEnter * setlocal cursorline
au WinLeave,FocusLost,CmdwinLeave * setlocal nocursorline

应该按预期工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 2014-09-12
    • 2015-02-28
    • 2013-01-31
    • 1970-01-01
    • 2017-06-15
    相关资源
    最近更新 更多