背景

我在研究实验室工作,每天使用三种不同的操作系统。在Windows和Mac机器上,当我在另一台机器上工作时,我利用Caffeine阻止这些机器启用屏幕保护程序(Linux没有此问题)。当我切换回原位时必须再次登录非常烦人。

问题

当vim或gvim处于插入模式时,字符<F15>偶尔出现在文档中。经过一些研究,我将其追溯到咖啡因。 Caffeine的网站指出,该软件可以通过偶尔模拟<F15>按键事件来工作:


在所有可用按键中,F15可能是侵入性最低的(我从未见过。带有该键的PC键盘!),并且最不可能干扰您的工作。


所以咖啡因是显而易见的罪魁祸首。但是,我仍然更喜欢在三台机器上都使用我最喜欢的文本编辑器,并且不打算仅仅为了使用Caffeine而对其进行更改。

问题

我可以放入vimrc来使vim忽略<F15>按键事件吗?


为了清晰起见

我不能禁用屏幕保护程序超时;它是由IT部门出于安全目的设置的。因此,使用Caffeine解决方法时,为了保持合规性,当我离开办公桌时,必须手动锁定计算机。还不错但是每隔几分钟就会解锁一次。

我也不写咖啡因,所以我不知道为什么开发人员选择每分钟单击一次<F15>。正如@ Random832所建议的那样,我可能会略有不同,可能只需轻轻一点鼠标移动或轻按触摸板即可。

评论

为什么不只在这些计算机上禁用屏幕保护程序/超时锁定功能?这比将vim配置为解决Caffeine的奇怪行为要干净得多。或者至少使Caffeine模拟而不是

@Ruslan使用的要点是,它很少表示任何含义,通常被忽略。但是,是有意义的,并且在错误的时间触发时可能会导致意外的行为。

@Ruslan IT部门将操作系统配置为在一段时间不活动后锁定;只要我离开办公桌时手动锁定机器,运行Caffeine就能绕过它。此外,我没有咖啡因的源代码,因此无法更改。

为什么不能仅模拟未启用点击时点击触摸板时发生的事件,但是它仍将鼠标悬停在当前窗口上方-而是当前窗口上方,因此它什么也不做?

@ Random832这是一个很好的问题;我没有编写程序,所以除了网站上发布的内容之外,我不知道选择背后的逻辑。

#1 楼

您可以将一个键映射到<nop>(“无操作”的缩写)使其“不执行任何操作”。

这应该使Vim在所有模式下都忽略<F15>键:

:noremap <F15> <nop> 
:noremap! <F15> <nop>


这可能会解决您的问题,但由于您没有安装装有Caffeine的各种Windows / OSX计算机,因此我尚未在您的特定情况下进行测试:-)

评论


看起来好像做到了!感谢您的帮助。

–乔纳森·兰德鲁姆
2015年5月20日下午14:50

应该注意的是,当在终端Vim中映射快速键代码时,经常使用像这样的死键。做这件事的插件的例子是rsi.vim。

– Peter Rincker
15年5月20日在17:54



我尝试了以下方法,以使Vim和Caffeine在Caffeine处于活动状态时保持协同工作。这些都不起作用。我的咖啡因正在发送F15键,它是^ [[28〜noremap noremap! noremap <^ [[28〜> noremap! <^ [[28〜> nnoremap nnoremap <^ [[28〜> 有什么想法吗?

–rem45acp
20年8月17日在16:43



您可以尝试将“原始密钥代码”绑定为noremap [28〜 @ rem45acp; ^ [是转义字符,您需要使用或键入文字的转义字符(通过按然后按转义键;但是仅使用更容易)。您也不要将<..>用于这样的原始密钥代码。

–马丁·图尔诺伊(Martin Tournoij)
20年8月18日,下午3:53

@MartinTournoij我可以确认这项工作!谢谢。

–rem45acp
20-10-2在20:18