2011-05-13 76 views
0

我一直在使用Vim和WinWalker,一个缓冲区管理器。有一个很大的功能是自动调整分割窗口的大小。所以,当我将一个缓冲区聚焦时,它将调整到最大宽度和高度。在Vim中自动调用密钥映射开始

然而,激活此功能,你需要打ctrl+w弹出WinWalker命令(虽然它可以映射到另一个键),然后按下c激活自动尺寸(这样你就可以打ctrl+w和c右后组合)。这非常乏味,尤其是当您已经打开了多个缓冲区时,必须激活每个缓冲区中的自动调整。

我的问题是:有没有办法在.vimrc中自动调用这个组合键?

我试过类似autocmd VimEnter <C-W>c,但它不起作用。另外,我并不擅长定制Vim。那么,有人可以帮助我吗?

在此先感谢

回答

0

什么你可能想这样做,调用函数调用<C-W>c。我知道如何发现所需功能的唯一方法是使用:map或查看源代码。命令:map将显示所有当前的密钥绑定。我怀疑这会告诉你你想要的一切,但它应该告诉你什么<C-W>被映射到,它可以告诉你在源代码中的位置。

另外,请确保阅读WinWalker提供的任何帮助文件。作者可能已经建立了一个开始使用该功能的机制。如果是这种情况,它可能就像在.vimrc中定义一个变量一样简单。

+0

确切地说,我发现正在调用WinWalkerMenu(),并且在一段时间的真循环中它正在等待输入,所以当你点击c时,它会跳转到一个case。实际上,这是WinWalker中的一个次要功能(_“哦,顺便说一下,它也自动调整大小,尽管它不相关”),所以默认情况下没有直接的功能来激活它。然后将是一种方法:调用WinWalker()并“模拟”一个'c'输入? – Korcholis 2011-05-13 16:36:41

+0

@Kor我不熟悉在vim脚本(.vimrc)中模拟用户输入的任何方法。我不是说它不存在,我只是不知道该怎么做。如果我处于你的位置,我会做的是抽象出功能的功能并向作者提交补丁。 – cledoux 2011-05-13 17:10:40

+1

@Kor我继续前进并修改了脚本。我不使用WinWalker,所以我不确定它是否像它应该的那样工作,但是如果你愿意,你可以测试它。我已经通过https://github.com/karategeek6/WinWalkerClone将它上传到git repo只修改插件/ WinWalker.vim文件。要调用的函数是WinWalkerAutoWindowResize()。 – cledoux 2011-05-13 17:11:52