Questions tagged «key-bindings»

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

1
z在vim中代表什么?
我一直在寻找有关屏幕切换的提示,并遇到以下提示: zz = shift current line to middle of screen zt = shift current line to top of screen zb = shift current line to bottom of screen 我的问题是什么z?它代表什么?可能z还有其他功能?

2
如何重新定义插件键映射?
我安装了一个不提供禁用其定义的键映射的机制的插件。我想<leader>cc为我自己的目的重新定义插件定义的映射()之一,我尝试将以下行放入我的.vimrc: noremap <leader>cc echo "my purpose" 但这不起作用,<leader>cc仍在执行plugin命令。 如何定义映射,使其覆盖插件定义的映射?

1
“映射的键序列”和“键代码”之间有什么区别?(timeoutlen v ttimeoutlen)
在VIM手册说,我们可以使用timeoutlen指定的超时长度映射的键序列,并且可以使用ttimeoutlen指定的超时长度密钥代码: 一个有用的设置是 :set timeout timeoutlen=3000 ttimeoutlen=100 (三秒钟后映射超时,十分之一秒后密钥密码超时)。 什么是关键代码?它们与映射的键序列有何不同? 我知道映射键序列的示例jk来自以下映射: inoremap jk <esc> 在此示例中,当我处于插入模式并键入时j,vim将等待timeoutlen毫秒让我按一下,然后k再确定我的意图。 但是什么是关键代码,ttimeoutlen它如何对其产生影响?谢谢。

1
找出哪个插件负责按键绑定
我正要回答一个问题,但意识到我的答案取决于我已安装的插件提供的按键绑定。更糟糕的是,我不知道哪个插件提供了它。 我知道解决此问题的唯一方法是通过禁用一半并启用另一半来“二进制搜索”已安装的插件。我使用Vundle来管理我的插件,因此每次迭代仅需要我注释掉插件列表的一部分,但这仍然是一个笨拙的过程。 有没有更好的方法来确定哪个插件负责给定的键绑定?有没有办法确定给定的键绑定是否vimrc直接由我的文件提供? 我意识到Vim没有内置的插件概念,所以也许问题更确切地说是“如何确定包含vimscript的文件负责给定的键绑定?”。


4
在vim中使用不同键盘的最便捷方法是什么?
有时我需要写希腊语单词,但是当我使用希腊语键盘时,例如,<C-p>将击打理解为<C-π>不是我想要的命令。可以用修复:map <C-p> <C-π>。我可以在不列出所有字母的情况下对所有字母执行此操作吗? PS。列出所有清单并不会产生完美的结果。例如,q是;在GR。键盘,但我们不想映射;至q。另外,由于某种原因,ZZ(zeta zeta)之后也不工作:map Ζ Z。我定义的命令\lw不能作为\λς。

3
即使我开始搜索“”,我怎么也可以继续前进?要么 '#'?
Vim有(至少)两组在相反方向上搜索的命令。键入/然后使用模式将在文档中向前搜索该模式;键入?,然后模式将向后搜索。*和#命令之间存在相同的关系。 我不喜欢这些命令还设置了nand N命令的搜索方向。使用后/,n向前浏览文档并向N后浏览;使用后?,n向后N前进。(换句话说,n始终与原始搜索方向相同,而N始终与另一个方向相同。) 我怎样才能获得n前进通过文档,N向后走,不管我开始寻找哪个方向的?

1
map,noremap,abbrev和noreabbrev命令之间有什么区别?
这些命令以某种方式将一组击键转换为另一组击键,但是我对哪种击键最适合某些情况感到有些困惑。此外,还有它们的!变体。目前,我对它们的使用非常随意,所以我能知道与它们相关的陷阱是什么吗?特别是有关各种模式版本的注释可能会很有用,因为我从Peter Rincker那里学到了一条注释,该注释cmap可以扩展到行中的几乎所有位置,不仅是在使用:命令时。我可以采取哪些预防措施来预防潜在的陷阱?

1
了解CTRL-U组合
在这个答案中,我面对的是实际函数名称之前和之后的CTRL-Uin函数调用:。 :nnoremap <buffer> <cr> :<C-U>call append('.', repeat([''],v:count1))<cr> 这是帮助的内容: CTRL-U Scroll window Upwards in the buffer. The number of lines comes from the scroll option (default: half a screen). If [count] given, first set the 'scroll' option to [count]. 我自己尝试过,它按我的预期工作。但是我不太了解有关该scroll选项的部分。他们是什么意思'scroll' option? 而且它在插入模式下还会做一些奇怪的事情。据我了解,它删除了从光标到该行开头的所有内容,然后将结果行与上面的行连接起来。

4
清除行的速度快于[0] [d] [$]
有没有一种比行上擦除文本更快的方法 按下0以跳到开始,然后 按d$删除直到该行的末尾? 另外,如果我想删除除缩进以外的所有内容怎么办?有没有办法做到这一点?

1
如何映射d [count] d?
注意:这不是“ d3fg”命令如何工作的重复项?请在投票关闭前阅读它! 我寻求小删除像大删除一样陷入僵局。我遇到的问题是我不知道如何重新映射类似的命令d3d。实际上,我什至无法理解它们的工作原理,也无法在Vim的帮助下找到它们的任何提法。* d3j很简单:将d操作员应用于3j运动, 3dd也很简单:它dd以3的“ count” 运行命令。 d3d 看起来应该很简单,它将d运算符应用于...,但是什么是3d?这不是一个议案。如果您3d自己输入,Vim会将其视为一个运算符,然后是一个运算符,并耐心等待进一步的输入。 而且您不能将运算符应用于其他运算符。dd在帮助中并未描述为两个运算符的序列。这是一个单独的两键命令。(请参阅dc,它什么都不做。) 对于需要两次击键的命令,计数的位置似乎也不是灵活的:2gj将光标向下移动两行屏幕,但是g2j完全丢弃前两次按键并向下移动一行光标。 那么它是怎样工作的?这只是Vim内部代码中的一种特殊情况吗?有什么办法可以创建d[count]d映射? 编辑:这是一个文本对象吗?:h text-objects不包括在“文本对象选择命令”列表中,但随后它确实包含DD在“从小分组,以大物”删除列表。并d2aw确实删除了光标下的单词和随后的单词。另一方面,c2d什么也不做。 *我确定必须提到它们,但是我找不到。我已经阅读了:help deleting,:help motion.txt并尝试:helpgrep dNd了从1到9的所有N值。

2
ale linter + eslint:跳至下一个错误
我使用eslintwith ale来整理我的Javascript代码。编辑代码块后,我经常会遇到一些错误要修复。通过导航到下一条错误的线,从标尺中读取问题并进行修复来完成修复。 如果我可以跳过导航阶段,并使用特定的键绑定导航到下一个错误的位置(其行以及希望的列),那就太好了。 有没有一种方法可以使用键绑定导航到下一个皮棉/棉布错误?

2
修复在vi(而非vim)中显示A,B,C,D的箭头键
我知道在vim中我可以添加 set nocompatible 在.vimrc以避免箭头键显示A,B,C,在插入模式d。 但是我正在使用vi 版本4.0(gritter)12/25/06。 如何获得相同的行为? ==编辑==(1) 我正在使用Arch Linux的vi版本,该版本是通过以下命令从此CVS存储库(最后一次提交,2007年2月24日)构建的: make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \ TERMLIB=ncurses FEATURES="-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8" 并使用以下三个补丁:fix-tubesize-short-overflow.patch,navkeys.patch和preserve-dir.patch。 ==编辑(2)== 这些问题发生在LXTerminal 0.2.0,白蚁10-1,Tilda 1.2.4-1,终结者0.98-1和xterm 320-2中,但在urxvt v9.21和Linux虚拟控制台中都没有。 ==编辑(3)== 根据单一Unix规格左箭头,向下箭头键,右箭头,向上箭头分别对应于以下capname: ,,kcub1 和。比较这些capterm中的terminfo条目,可以得出:kcud1kcuf1kcuu1xtermrxvt-unicode-256color $ infocmp xterm rxvt-unicode-256color | grep -E 'kcuf1|kcub1|kcud1|kcuu1' kcub1: '\EOD', '\E[D'. kcud1: '\EOB', '\E[B'. kcuf1: '\EOC', '\E[C'. kcuu1: …


3
进入neovim终端面板时如何进入插入模式?
我具有以下映射,可以很容易地从neovim中移出终端面板: tnoremap <C-h> <C-\><C-n><C-w>h " Workaround since <C-h> isn't working in neovim right now tnoremap <C-w>h <C-\><C-n><C-w>h tnoremap <C-j> <C-\><C-n><C-w>j tnoremap <C-k> <C-\><C-n><C-w>k tnoremap <C-l> <C-\><C-n><C-w>l 唯一的问题是,当我返回到终端窗格时,必须按下i才能回到插入模式。当我进入运行终端的neovim窗格时,我总是希望它处于插入模式。实现此目标的最佳方法是什么?

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.