tmux vim 括号显示问题

tmux vim display issue on parenthesis

我最近升级到 Ubuntu 16.04,但又出现了这个问题。我依稀记得在 14.04 上修复它,但我不记得是如何修复的。

我已将 tmux window 分成两个窗格。 vim 是左窗格中显示文件的 运行。如果 vim 光标在任何类型的括号上,当我切换窗格时,括号将成为显示上的插入符号,尽管它在文件中没有更改。切换回 vim 并移动光标将导致其正确重绘。

tmux TERM 之外是 gnome-256color。 tmux TERM 内部是 screen-256color.

对造成这种情况的原因有什么想法吗?

更新

我可以通过使用 Alt-Tab 简单地改变焦点来实现它。也就是说,我不需要在 tmux 中切换选项卡。只需在屏幕上移动焦点即可实现。

更新2

事实证明它与 gnome-terminal 无关,所以我删除了对它的引用。

发生这种情况是因为 vim 在匹配时突出显示了括号。

来自 :help matchparen

The functionality mentioned here is a standard-plugin. This plugin is only available if 'compatible' is not set.

You can avoid loading this plugin by setting the "loaded_matchparen" variable:

:let loaded_matchparen = 1

The plugin installs CursorMoved, CursorMovedI and WinEnter autocommands to redefine the match highlighting.

:NoMatchParen :DoMatchParen

To disable the plugin after it was loaded use this command:

:NoMatchParen

And to enable it again:

:DoMatchParen

您可以使用自动命令来切换它。 像

:autocmd FocusLost * :NoMatchParen
:autocmd FocusGained * :DoMatchParen

应该可以。

如果您的控制台 vim 不支持这些自动命令,您可以使用 tmux-focus-events.vim 插件

另请参阅 unix stachexchange 中的 this post