【问题标题】:Vim key binding to call function: control+c then 1Vim 键绑定到调用函数:control+c 然后 1
【发布时间】:2015-07-13 06:11:36
【问题描述】:

我正在寻找一种制作 vim 绑定的方法,我可以在其中输入 control C(同时输入 control 和 c 键),然后输入另一个选项(类似于 yydd。例如, ctrl+c 然后 1 将被设置,以便我定义的函数,称为我的 func,将被调用如下:myfunc(1)

这是我目前的尝试:map <C-A> <F1>:call myfunc(1)<CR>

【问题讨论】:

    标签: vim key-bindings vim-plugin


    【解决方案1】:

    您可以做到,只需进行一些修改:

    • Ctrl-c用于中断信号;选择其他一些组合键,例如<Leader>c
    • 使用计数比使用参数要容易得多;即用3\c触发组合键,而不是用\c kbd>3
    • 用户函数的名称必须以大写字母开头。

    有了这些笔记,你可以这样做:

    nnoremap <silent> <Leader>c :<C-u>call MyFunc(v:count)<CR>
    

    v:count 是一个预定义变量,它采用您传递给最后一个正常模式命令的计数器的值,如果没有计数器,则为 0。还有 v:count1 做同样的事情,除了如果没有计数器,它默认为 1。

    【讨论】:

    • &lt;C-u&gt; 的意义是什么?我无法完成这项工作。你觉得noremap &lt;silent&gt; &lt;C-S&gt; :call Myfunc(v:count)&lt;CR&gt; 有什么问题吗?我是这样设置的,但是不能用 ctrl+a.... 访问函数。
    • 是的,您的地图是错误的。需要&lt;C-u&gt;,它会删除: 之后的计数。 &lt;C-s&gt; 是停止信号的键,你将无法映射它。 &lt;C-a&gt; 将计数添加到光标下的字符。如果您真的下定决心,您可能可以映射它,但您不应该这样做。很少有Ctrl 键还没有做一些重要的事情。 耸耸肩
    猜你喜欢
    • 2015-01-15
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多