vim - vim插入模式下'Ci'的反向键是什么?
问题描述
在 vim 的插入模式下,'Ct' 和 'Cd' 可以从当前行的开头插入或删除 Tab/4whitespace并且:
'Ci' 可以从当前光标处插入 Tab/4whitespace 。
但是,我们如何从当前光标中删除4 个空格?'Ci' 的逆运算是什么?
解决方案
没有内置命令可以满足您的需求。
“手动”执行类似操作的一种方法是:
<C-c>ciw
<C-c>
离开插入模式而不触发自动命令,将光标留在最后<Space>
,ciw
<Spaces>
剪切Vim 将其视为“单词”的序列,并进入插入模式。
现在我们有了一个工作宏,映射到一些方便的东西是微不足道的:
inoremap <key> <C-c>ciw
我们可以通过防止它用无用的 s 污染寄存器来使它变得更好
:
inoremap <key> <C-c>"_ciw
请注意,此映射也适用于任何<Tab>
s 和/或<Space>
s 序列。
现在,正如@Eineki 所指出的,上面的映射不是真正的逆映射,<C-i>
因为它删除了光标之前的所有连续空格,而不管列表如何。
如果您只按下<C-i>
一次,那么映射将有效地充当 inverse <C-i>
,但如果您有超过 a &shiftwidth
of <Space>
s ,则整个序列将被删除,这不是真正的 inverse<C-i>
会做的事情。
真正的逆<C-i>
将删除<Space>
s 直到前一个列表,这听起来不那么琐碎。
推荐阅读
- java - Spring C命名空间导致将类型从String转换为整数时出错?
- javascript - Javascript 到 RSS 与 Node.JS
- powershell - 使用 Powershell 删除 csv 文件末尾的空行
- filepond - 由 filepond 实例包装的文件被锁定,FileReader 对象的错误消息
- authentication - Active Directory LDAP 用户验证问题
- c# - 从 vs2010 (4.0 框架) c# 类调用 3rd 方 api
- python - 在 KivyMD MDDialog 中。如何在其中添加三个以上的项目
- javascript - Firebase 身份验证迁移
- java - Spring Boot @Autowired 在变量还是构造函数上?
- python - 以与主模型相同的方式序列化 Django 简单历史项目