【问题标题】:vim: how to run a command on a specific window on startupvim:如何在启动时在特定窗口上运行命令
【发布时间】:2012-10-18 08:35:16
【问题描述】:

我在 windows 上使用 gvim 7.3。

我正在使用Tail Bundle 插件,但为了克服 Windows 的限制,我需要在启动时运行一些命令...但只能在插件打开的窗口/缓冲区上运行,而不是在其他插件上。

这个插件打开一个预览窗口,如果我 ls,我没有看到我用这个插件打开的文件的缓冲区......所以我打算使用 autocmd 以某种方式将操作限制在那个缓冲区似乎是不可行的。

有没有办法只在这个插件打开的特定预览窗口上运行命令?我想是的,但我还是 vim 的新手......


编辑:好的,感谢 Kev,这部分已经解决,我对主要问题保持开放......

另外,作为附录,我在启动时使用

运行一些命令
 -c "tabn" 

这很好用,但是当我尝试运行像 -c "<C-W> H" 这样的东西时,这些都不起作用,我该怎么做?

【问题讨论】:

  • "这个插件打开一个预览窗口,如果我 ls,我没有看到我用这个插件打开的文件的缓冲区......所以我打算使用 autocmd 以某种方式将操作限制为仅那个缓冲区似乎不可行。”你失去了我。您想将 autocmd 限制在不存在的缓冲区中吗?
  • 正如我所说,我刚开始使用 Vim,所以我可能使用了不正确的术语。我想在启动时发送一个仅适用于插件打开的预览窗口的命令
  • 如果该预览窗口有一个可靠的名称,那么您可以在 autocmd 中匹配它。例如,au WinEnter __Plugin_Window_Name__ echo "do something here"
  • 不确定如何找出“窗口名称”,我正在尝试使用选项卡中显示的标签或工具提示中的值,但无济于事。 echo 应该回显到命令行 no?

标签: vim vim-plugin


【解决方案1】:

-c 选项仅接受 ex 命令(AKA 冒号命令)。
您需要将其重写为-c 'exe "norm \<C-w>H"'
另一种方式是-c 'wincmd H'

【讨论】:

    【解决方案2】:

    这个插件使用预览窗口(参见:h preview-window)来显示它正在跟踪的文件。不幸的是,我认为打开预览窗口时不会触发任何事件,因此唯一的方法是编辑插件本身并在打开窗口时添加您的命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 2013-05-25
      • 2021-12-31
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多