Questions tagged «key-bindings»

按下键时进行操作。这些也称为键映射或映射。有关默认键绑定以及创建或重新定义键绑定的问题。

1
在插入模式下映射字母序列
我已经可以在插入模式下映射组合键: :inoremap abc <do stuff> 但是,这有一些缺点: 在键入序列的部分版本(例如)时ab,实际上不会在短时间内显示字符,因为这是在“等待”以查看是否要键入完整命令。这是不可取的。如果要输入字母的部分子字符串,我想映射一个字母链而不暂停。 如果键入ab,则暂停(并等待直到字符实际上如上述指出那样出现),然后键入c,命令将不会执行。我希望无论等待多长时间都可以执行命令。 我会使用iab,但是那是行不通的,因为: 它需要在字符串后输入一个空格 我不能用它执行任意命令,只能插入文本字符串。 如果在插入模式下输入了某个字符串而没有使用映射,是否有任何方法可以执行命令或击键(映射会在每次键入an时烦人地暂停a,而等待时间过长则无法工作)?


3
在终端上通过vim的doc(:help)链接时出现问题
我在终端上阅读vim的文档时遇到了一些麻烦,因为我无法遵循给出的链接。 我引用: 跳转至主题:将光标置于标签(例如| bars |)上,然后按CTRL-]。 问题是我使用的是西班牙键盘,其中“ +”和“]”位于同一按钮上,因此当我按CTRL-]时会进行缩放。 我可以将CTRL-]映射到其他任何键还是有其他选择?

6
如何删除光标上方/下方的行,而不是当前行?
是否有删除当前行上方的一行(或n行)的命令?以上=当前不包括在内。 即,是否有dk不删除当前行的替代方法?与o/ O和p/的P工作方式类似,但具有删除功能。 目前,我正在执行kdd,它将光标向上移动一行并删除它。我可以nnoremap <Leader>d kdd和nnoremap <Leader>D jdd-,但是有一个不移动光标的替代品似乎是一个更好的选择。有这样吗?

3
是否可以使用参数创建映射?
我已经创建了一些映射,如下所示: :nnoremap <buffer> <leader>xyzABC :call SomeFunc('ABC')<CR> :nnoremap <buffer> <leader>xyzDE :call SomeFunc('DE')<CR> :nnoremap <buffer> <leader>xyzFoo18 :call SomeFunc('Foo18')<CR> :nnoremap <buffer> <leader>xyzBar22 :call SomeFunc('Bar22')<CR> 可以按需工作。 我现在正在寻找创建映射模板的可能性,该模板将允许我删除映射中明显的多余部分,例如 :nnoremap <buffer> <leader> xyz? :call SomeFunc(?)<CR> 这样我就可以将任何值作为参数传递给SomeFunc。 有这种可能性吗?

2
按住键时如何重复映射
我在.vimrc一些简单的映射中可以轻松调整拆分窗口的大小: noremap <Leader><UP> <C-w>+ noremap <Leader><DOWN> <C-w>- 效果很好,但是例如,当我想调整10行的窗口大小时,我必须按下并释放Leader+ UP10次​​。 按下键时如何重复此映射?我想要的是,当我按Leader+时UP,映射将被应用一次,然后在短时间内将再次应用,依此类推,等等。 注意:我知道<C-w>+可以在计数前加上前缀,并且可以在映射中对其进行硬编码,也可以在使用映射之前简单地输入一个计数,但这不是我想要的方式。 注意2:我也知道,流行的映射窗口大小的映射是使用+和-键,这些键更容易按几次,但是我既不想使用这些键也不能这样做。

1
gs的用例
根据有关文档gs: 入睡N秒钟(默认值为1) 因此,您可以使用来使Vim进入睡眠状态10秒钟10gs。此命令的一个好用例是什么?

3
公开课第3节
我正在使用Vim在Linux上开发C。当我按下K以打开基本单词的手册页时,我无法控制要打开哪个手册节。有没有办法在某个地方指定它?

4
将命令序列捆绑在一起以重复(。)
考虑: apple pear 将光标放在第一行上,键入Yp,生成: apple apple pear 将光标放在pear行上,然后键入.以重复上一个命令。这仅重复p(而不是组合Yp),产生: apple apple pear apple 我想知道一种方法来.重复最后N条命令。喜欢的东西2.重复组合Yp,以产生: apple apple pear pear Ofc无效-重复p两次。但是这个想法是“重复最后两个命令的顺序 ”。 我知道我可以- q记录命令序列并使用来重复它们@@,但是这种解决方案并不理想,因为它需要您一直在进行规划,而实际上,您通常并不知道需要重复一些操作直到之后你已经做到了。 有什么方法可以实现我想要的吗? 安慰奖:如果以上都不可行,是否有办法重复上一次的宏播放?例如,如果我键入@@要播放的最后一个宏,我希望随后的内容.等同于@@再次键入-而不是再次键入(例如,如果的结果@@取决于您所在的行)

2
上下文相关插入模式映射或缩写
我正计划为我的LaTeX插件实现一些实用程序映射,以简化数学的输入。例如,我想创建类似于以下的缩写 `a : \alpha `b : \beta -> : \to => : \Rightarrow 和类似。我希望(某些)映射仅在数学环境内可用,而不在外部可用。 我知道我可以通过语法组(即texMathZoneE和)识别数学环境texMathZoneX。但是,我不知道如何使用它来进行上下文敏感的映射或缩写。

3
像Ctrl-A和Ctrl-X一样,但仅修改第一位
有没有一种方法可以增加/减少光标之后/下方的第一个数字,而不是整数。 我知道这不是vim的工作原理,但是有没有可以做到这一点的插件?我找不到它。 在编辑CSS或其他情况下,它非常有用。 鉴于: ▐margin: 10px 当我按时,CTRL-A我想看到: ▐margin: 20px 实际: ▐margin: 11px

1
单词是否有<Cw>?
在插入模式下按Ctrl- w将删除前一个单词。它等效于Ctrl- Backspace在Windows中和Opt- Delete在OS X中,并确实加快了键入速度。 Vim有的不同的概念word和WORD(见:help word)。这是无价的文字导航:它的区别w和W,b和B,等等。 Ctrl- w经营上word。有类似的指示WORD吗?

2
vimgolf如何记录所有击键?
我不时喜欢参加vimgolf赛。这可能是有启发性的。 他们如何记录所有击键?那一定是vim功能。任何人都知道如何做到这一点。在某些情况下记录所有内容可能会派上用场。

1
用等号映射Ctrl
我正在尝试将Ctrl和加号映射在一起。这是我在vimrc中尝试的方法: nnoremap &lt;C-=&gt; : echo "Hello" &lt;CR&gt; 但是,似乎未触发映射。关于我可能在做错的任何建议吗?我正在使用macvim。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.