繁体   English   中英

如何将这五个键盘操作映射到Vim中的单个键?

[英]How can I map these five keyboard actions to a single key in Vim?

我想映射一个键,以便它将在Vim中执行以下操作。 假设我正在编辑文件; 我希望进行设置,以便如果按F2键,我将完成与执行以下操作相同的操作:

  1. ESC
  2. 键入冒号( :
  3. w
  4. Enter
  5. 再按一次ESC
  6. 输入i返回到插入模式

这可能吗?

是的,这是可能的,但是如果光标在行尾,它就不会执行您想要的操作。

要以插入方式将文件保存在F2上,请使用以下映射:

:imap <F2> <C-O>:w<CR> 

字面回答:是的。 您可以使用此:

:inoremap <F2> <Esc>:w<CR>I

但是它并不能完全满足您的要求(光标将放置在错误的位置)。

安东击败了我,我的回答不那么真实(但正确)。

最好的答案是: 不要误用Vim。 您永远不要在插入模式下花费太多时间,而需要一个捷径来退出它,保存文件然后重新进入。对于所有其他编辑器,您始终一直处于“插入模式”,并且仅临时弹出菜单或对话框等; 在Vim中,您应该学会扭转这种情况。 仅进入插入模式才能编辑或添加内容; 在插入模式下,切勿使用箭头键移动光标; 在命令(正常)模式下花费大部分时间后,对新范例进行了一些调整之后,您会发现编辑速度有所提高。

编写映射几乎比您的描述容易。

首先,您需要确定将从哪种模式使用映射,因为这确定了您将使用哪种:map变体。 您可能需要在插入模式下使用它,因此将使用:inoremap

映射的格式为:

:..noremap {keys} {rhs}

您需要<F2> (请参阅:help key-notation )作为keys 对于{rhs} ,只需串联描述中列出的密钥。

要保留映射,请将其添加到~/.vimrc (请参见:help vimrc 。)

PS 安东·科瓦连(Anton Kovalenko给出替代方法可能会更适合您要尝试执行的操作,但是在这里,我为您提供了将来按键映射的一般方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM