【问题标题】:tmux vim display issue on parenthesis括号上的 tmux vim 显示问题
【发布时间】:2016-06-21 18:25:17
【问题描述】:

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

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

tmux TERM 之外是 gnome-256color。 tmux TERM 里面是 screen-256color。

关于造成这种情况的任何想法?

更新

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

更新2

原来它与 gnome-terminal 无关,所以我删除了对它的引用。

【问题讨论】:

  • 当我尝试这个时,我看到括号被匹配并突出显示。你的情况也是这样吗?
  • 是的,括号在我切换窗格之前突出显示。
  • 当我执行:NoMatchParen 时,我发现这个问题已经消失了。你能确认一下吗?
  • 已确认。我还注意到,当我注释掉 Plugin 'tmux-plugins/vim-tmux-focus-events' 它消失了。
  • 我认为我们可以使用一些自动命令在离开 vim 窗口时执行 NoMatchParen 并将其重新设置为聚焦 vim。让我也看看你提到的插件。之后我会发布答案

标签: vim tmux ubuntu-16.04


【解决方案1】:

这是因为 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

【讨论】:

  • 是的。但我的 .vimrc 中需要 autocmd FocusLost * :NoMatchParen。注意星号。 FocusGained 也是如此。
  • 糟糕,差点错过了。谢谢指正。
  • 正如我在上面的 Update2 中所述,此问题与 gnome-terminal 无关,因此我从问题中删除了该错误信息。我可以在我的 chromebook 上的终端应用程序中看到它。
猜你喜欢
  • 2017-08-23
  • 2016-05-03
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多