Questions tagged «key-bindings»

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

2
如何在vim命令行中使用Readline快捷方式?
当我编辑Vim命令时,我想使用与 Bash和所有其他REPL中相同的快捷方式:M-b返回一个单词,M-Backspace删除前一个单词,M-u将该单词转换为大写字母,C-k剪切至我已经能够使用来配置一些命令:cmap,但不是全部。 是否有提供此功能的插件或设置? 我知道cedit,但是当我需要输入快速命令时,我会觉得很麻烦。

1
如何在不退出插入模式的情况下将光标移动到正确的缩进级别?
例如,我有此JavaScript代码。该|字符代表光标位置,并且在空行上。 function a() { console.log("a"); function b() { console.log("b"); function c() { console.log("c"); } | c(); } b(); } 完成请求的操作后,内容将如下所示: function a() { console.log("a"); function b() { console.log("b"); function c() { console.log("c"); } | c(); } b(); } 我要的是一个映射命令。 非常感谢你! :-)


4
为什么此<Esc>普通模式映射会影响启动?
我在使用的普通模式映射时遇到一个奇怪的问题Esc。 如果escmapvimrc使用内容创建文件: set nocompatible set showcmd " Doesn't affect the problem: just makes it easier to see nnoremap &lt;Esc&gt; :noh&lt;CR&gt;&lt;esc&gt; 然后使用以下vimrc启动vim: vim --noplugin -u escmapvimrc 然后,vim将以操作员待定模式启动,c命令等待进一步输入,显示一个空文件,并且命令行显示:noh。 如果您删除该nnoremap行,那么问题就消失了。 如果您调试并逐步完成所有操作,则会得到以下输出: Entering Debug mode. Type "cont" to continue. /[...]/escmapvimrc line 1: set nocompatible &gt;s /[...]/escmapvimrc line 2: set showcmd " Doesn't affect the …

3
如何找出键映射到什么?
我知道运行:map不带参数的命令应该给我一个用户定义的映射列表,但是,例如,当我按Ctrl-W Ctrl-I时,发生了一些事情,但我不知道内置映射只是发生了什么功能不要出现在:map命令中。 我如何找出钥匙的作用?


3
如何即时启用/禁用augroup?
我augroup在自己的文件.vimrc夹中创建了一个,autocmd并且需要autocommand即时启用/禁用这些控件。 这个想法是创建一个映射(F4比如说),该映射将在一次按下时启用这些自动命令,而在再次按下时禁用这些自动命令,而无需提供文件或重新加载.vimrc。 我怎样才能做到这一点?

4
命令遍历拼写建议
我映射zz到1z=,这在大多数情况下是很好的,但是时不时地,第一个建议不是正确的建议。 因此,我想继续重复zz(或.)循环浏览其他建议。 zz那么,在同一个单词上的第二u2z=个zz将像一样工作,第三个将像一样工作u3z=,依此类推。 关于如何做到这一点的任何想法? 编辑: 基于@ nobe4的出色回答,我设法完成了我想做的事情,但是如果有人有任何改进或建议,我会在这里待一会儿: let s:spell_position = [] let s:spell_count = 0 let s:spell_word = "" function! LoopSpell() if s:spell_position != getpos('.') || \ (s:spell_count &gt; 0 &amp;&amp; s:spell_word !~ expand("&lt;cword&gt;")) let s:spell_count = 0 let s:spell_position = getpos('.') endif if s:spell_count &gt; 0 silent execute "normal! …

2
如何保存和还原映射?
我正在为Vim开发一个插件,我想定义一个仅在“执行插件”时可用的映射。 到目前为止,插件的(简化)工作流程如下: 用户调用插件命令 该命令调用预处理功能: function! s:PreTreatmentFunction(function, ...) " Do some pretreatment stuff " Create a mapping to call the TearDown nnoremap &lt;C-c&gt; :call TeardDown()&lt;CR&gt; " Call a function depending on the parameter passed to this one if function == "foo" call Foo() else call Bar() endif endfunction 调用另一个函数来更改缓冲区的状态(Foo()或Bar()在上一个函数的最后一行中) 用户使用映射来调用拆解函数 拆卸功能删除创建的映射: …

3
动作映射
我试图了解如何在映射内的后续运动中使用运算符。例如: nmap /c c{here we pending for a motion}/&lt;C-r&gt;"&lt;CR&gt; 该地图应执行以下操作: 激活c操作员并收听下一个动作; 例如,我可以在此处键入t,以在下一个逗号之前更改所有内容; 进入插入模式,删除光标和逗号之间的所有内容; 删除的文本会自动搜索为图案 简而言之,删除运动文本后,我将处于插入模式,突出显示了已删除的文本。如果有人帮助我解决这个问题,我将不胜感激。 更新 答案几乎是我想要的。但!当我按时/cw,键入一些东西而不是单词,然后按&lt;Esc&gt;。我希望以后再做同样的事情。但是,在n(转到下一个出现)和.(重复上一个命令)之后,它只是在最后键入的文本之前加上了替换而不是替换它。映射的主要目标是将其与n/N和.重复使用。我错过了什么吗?

1
有哪些选项可以进入插入模式?
我a以前从未意识到没有关于插入模式开始位置的系统来进入插入模式。 有时我很烦恼,a将光标放在行的第一个字符之后,但问题是:它在当前光标位置之后进入插入模式。 然后我意识到我可以在行的末尾使用A或在当前行的下方进入插入模式o。 在正常模式下进入插入模式有哪些方式,它们有什么区别?

1
在同一台计算机上使用vim和咖啡因
背景 我在研究实验室工作,每天使用三种不同的操作系统。在Windows和Mac机器上,当我在另一台机器上工作时,我利用Caffeine阻止这些机器启用屏幕保护程序(Linux没有此问题)。当我切换回原位时必须再次登录非常烦人。 问题 当vim或gvim处于插入模式时,该字符&lt;F15&gt;偶尔出现在文档中。经过一些研究,我将其追溯到咖啡因。Caffeine的网站指出,该软件通过偶尔模拟&lt;F15&gt;按键事件来运行: 在所有可用的按键中,F15可能是侵入性最低的(我从未见过使用该按键的PC键盘!),并且极不可能干扰您的工作。 因此,咖啡因显然是罪魁祸首。但是,我仍然更喜欢在所有三台计算机上使用我最喜欢的文本编辑器,并且不打算为了适应Caffeine而对其进行更改。 题 我可以放些东西vimrc使vim忽略&lt;F15&gt;按键事件吗? 编辑清晰度 我无法禁用屏幕保护程序超时;它是由IT部门出于安全目的设置的。因此,使用Caffeine解决方法时,为了保持合规性,当我离开办公桌时,必须手动锁定计算机。还不错 但是每隔几分钟解锁一次。 另外,我没有编写Caffeine,所以不知道为什么开发人员选择&lt;F15&gt;每分钟单击一次。正如@ Random832所建议的那样,我可能会略有不同,可能只需轻轻一点鼠标移动或触摸板轻敲即可。

1
使用冒号代替分号的命令有什么优势?
Vi通过命令模式非常成功地最小化了手指移动和速度。 交换;并:似乎以保存其使用更多freqently比字母搜索repititions命令很多额外的换挡按键,但也有缺点,使用非标准键布局。 :for命令的优点是什么?与Vi整体的效率和优雅相比,我觉得我必须缺少一些逻辑。


2
在运行时快速切换字体
虽然可以从GVim菜单中手动选择字体,但我还是要根据手头的任务在一些首选字体之间进行切换(小位图,大OTF等)。 有什么方法可以设置键绑定来循环浏览vimrc中预定义的字体列表?

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.