【问题标题】:Auto calling a key map in Vim on start启动时自动调用 Vim 中的键映射
【发布时间】:2011-05-14 00:28:14
【问题描述】:

我一直在使用 Vim 以及缓冲区管理器 WinWalker。有一个很大的功能是自动调整拆分窗口的大小。因此,当我聚焦缓冲区时,它会调整为最大宽度和高度。

但是,要激活此功能,您需要点击 ctrl+w 以弹出 WinWalker 命令(尽管它可以映射到另一个键),然后点击 c 以激活自动调整大小(这样您就可以点击 @987654323 @ 和 c 在组合之后)。这真的很乏味,特别是当您已经打开了多个缓冲区时,当您必须激活每个缓冲区中的自动调整大小时。

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

我尝试过类似autocmd VimEnter <C-W>c 的方法,但它不起作用。此外,我不太擅长定制 Vim。那么,有人可以帮我解决这个问题吗?

提前致谢

【问题讨论】:

    标签: vim autoresize


    【解决方案1】:

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

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

    【讨论】:

    • 没错,我发现 正在调用 WinWalkerMenu(),并且在 while true 循环中它正在等待输入,所以当你点击 c 时,它会跳转到一个 case。实际上,这是 WinWalker 中的次要功能(“哦,顺便说一下,它也会自动调整大小,尽管它不相关”)所以默认情况下没有直接的功能来激活它。那么将是一种方法:调用 WinWalker() 并“模拟”c 输入?
    • @Kor 我不熟悉在 vim 脚本 (.vimrc) 中模拟用户输入的任何方法。我不是说它不存在,我只是不知道该怎么做。如果我处于你的位置,我会做的是将功能抽象为函数并将补丁提交给作者。
    • @Kor 我继续修改了脚本。我不使用 WinWalker,所以我不确定它是否像预期的那样工作,但如果你愿意,你可以测试一下。我已将其上传到github.com/karategeek6/WinWalkerClone 的 git 存储库,仅修改了 plugins/WinWalker.vim 文件。要调用的函数是 WinWalkerAutoWindowResize()。
    猜你喜欢
    • 1970-01-01
    • 2016-04-21
    • 2011-03-13
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 2020-11-24
    相关资源
    最近更新 更多