vim – 向后运动总是包容?
关于那些需要的人的独家动议的背景:
在运算符之后,我一直对Vim中的动作如何工作感到恼火.最近我听说这是因为它们通常是“排他性的”:它们省略了最右边的字符,而不是“包容性”操作,它会拾取起点和终点之间光标下的所有内容.由于某种原因,运算符暂挂模式中的几乎所有动作似乎都是这样工作的,例如按下“dl”将只删除光标下的字符(将最右边的第二个字符排除),一行末尾的d0将离开最后一个线上的字符不受影响.像“d $”或“de”这样的动作再次打破了这种模式,并且还包括最右边的角色.更多在Motion.txt. 我发现排他性的概念是不必要和混乱的.我可以理解,当你“搜索”下一个单词,标记或搜索结果时,你通常会想要在操作时不选择运动的实际目标.独家议案实现了这一点.但排他性概念的不一致是奇怪的.主要问题是当你向后移动某个地方时:操作将使最右边的角色,起始角色不受影响,并且无论你做什么,仍然会在你的移动目标上运行,而不是向前搜索.例如,你希望“edb”完全删除一个单词,但事实并非如此.同时“bde”确实如此. “dl”只删除光标下的字符(而不是也包括右边的字符),“dh”只删除左边的一个字符. This inconsistency is annoying,and seemingly makes it look like Vim secretly is keeping the cursor actually between letters on the left side of the cursor block. 幸运的是,在操作符切换到字符操作的排他性之后使用“v”,所以我已经能够使用onoremap vb修复一些运动,例如b和h.但这只是部分解决方案;许多“搜索”移动命令可以向后或向前移动,因此当向后移动时使它们包括最右边的字符是不可能的,而不会使向前运动不期望地影响运动目标的第一个字符. 简而言之我的问题:当相对于光标位置向后移动而不影响前向运动时,是否有任何简单的方法可以使所有操作包含在内(包括光标起点下的字符)? (甚至更好的是完全忘记整个排他性事物并且“v”切换是否包括运动的目标(因此“dn”将从光标删除直到搜索结果的开始,“dvn”将从光标删除到结果的结尾),但这可能意味着编辑源.) 对不起,很长的帖子,很难解释,我很生气. 解决方法
在您描述的大多数场景中,vim文本对象肯定是更好的候选者而不是动作.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- angularjs – angular.element($window).scrollT
- 20个优秀的前端框架 Twitter BootStrap Foundati
- AngularJS快速开始
- 如何使用python脚本控制Docker
- angular – 使用Typescript获取assets文件夹中的
- bootstrap-4 – Bootstrap 4:当在nav.navbar中时
- scala – 值foreach不是Int的成员?
- 不用搭环境的10分钟AngularJS指令简易入门01(含
- 角度 – 离子服务在’build dev started’之后停
- Angular 5 HttpClient比以前的Http有什么优势?