我最近升级到Ubuntu 16.04并且这个问题又回来了。我模糊地回忆起它在14.04修复它,但我不记得是怎么回事。
我将tmux窗口拆分为两个窗格。 vim正在左窗格中运行,显示一个文件。如果在切换窗格时vim光标位于任何排序的括号上,则括号将成为显示中的插入符号,尽管它在文件中未更改。切换回vim并移动光标将使其正确重绘。
在tmux之外,TERM是gnome-256color。里面的tmux TERM是screen-256color。
关于导致这种情况的任何想法?
更新
我可以通过使用Alt-Tab更改焦点来实现。也就是说,我不需要在tmux中切换标签。只需在屏幕上移动焦点就会发生这种情况。
UPDATE2
事实证明它与gnome-terminal无关,所以我删除了对它的引用。
答案 0 :(得分:4)
这是因为vim的括号突出显示匹配。
来自:help matchparen
这里提到的功能是标准插件。 此插件仅在未设置“兼容”时可用。
您可以通过设置“loaded_matchparen”变量来避免加载此插件:
:let loaded_matchparen = 1
该插件安装CursorMoved,CursorMovedI和WinEnter自动命令 重新定义匹配突出显示。
:NoMatchParen :DoMatchParen
要在插件加载后禁用该插件,请使用以下命令:
:NoMatchParen
再次启用它:
:DoMatchParen
您可以使用自动命令来切换它。 像
这样的东西:autocmd FocusLost * :NoMatchParen
:autocmd FocusGained * :DoMatchParen
应该工作。
如果您的控制台vim不支持这些自动命令,您可以使用tmux-focus-events.vim插件
另请参阅unix stachexchange中的this post。