绕过vim missing的正确用法是什么;插入一个字符";指挥部?

绕过vim missing的正确用法是什么;插入一个字符";指挥部?,vim,insert,Vim,Insert,这对SO来说可能不是一个好问题,但多年来一直困扰着我,谷歌也不知道,所以让我们试一试,因为它确实会影响我每周的编程工作: 我经常发现自己缺少一个字符,比如“=”而不是“=”,缺少一个空格,用引号/括号括起来,等等 那么,为什么vim没有正确的命令来插入单个字符呢?正确的意思是,支持使用进行计数和重复 什么是基本原理,我缺少的正确的使用模式是什么,这使得这个特性变得不必要?我似乎需要所有的时间,所以一定有一些原因,它没有被添加到原来的vi了 我知道添加一个简单的基本键绑定(如:nmap I\u r

这对SO来说可能不是一个好问题,但多年来一直困扰着我,谷歌也不知道,所以让我们试一试,因为它确实会影响我每周的编程工作:

我经常发现自己缺少一个字符,比如“=”而不是“=”,缺少一个空格,用引号/括号括起来,等等

那么,为什么vim没有正确的命令来插入单个字符呢?正确的意思是,支持使用
进行计数和重复

什么是基本原理,我缺少的正确的使用模式是什么,这使得这个特性变得不必要?我似乎需要所有的时间,所以一定有一些原因,它没有被添加到原来的vi了

我知道添加一个简单的基本键绑定(如
:nmap I\u r
)非常简单,但在新环境中进行快速编辑时,这相当不方便,而且这个简单的版本无论如何也不能正常工作

注:如果事实上有一个默认绑定,只插入一个字符,总共两次击键,并保持在命令模式,类似于用两次击键替换一个字符的
r
,我承诺第一个答案的奖金为100,告诉我它是什么。

对我来说,我Esc(3次击键,没有修改键)它非常短而且内置。您已经发现了将其减少为两次击键的自定义映射;我也从你的开始,随着时间的推移,它更加先进,以满足我的需要,并添加了映射变量,以在光标位置处或之后插入一个空格

据推测,没有内置命令是因为键空间(特别是对于单个未移位键)非常有限,这一点不能证明这样的主空间是合理的,任何多键替代方案(如以
g
开头的Vim)在效率方面都是毫无价值的。

没有。没有默认的键绑定(有关正常模式命令的完整列表,请执行
:viusage

如果你想知道原因,恐怕你得问问布拉姆·穆勒纳或比尔·乔伊

但是这里有一个想法:
r
s
处理光标下的字符。它们所做的是相当有限和一维的,但是您的命令如何工作呢

它是像
i
,在当前字符之前插入单个字符,还是像
a
,在当前字符之后插入单个字符

因为“插入文本”可以发生在当前字符之前或之后,所以我们有
i
a
,而且很明显,我们需要两个命令来快速插入单个字符

这使得问题变得更复杂了


既然所有按字母顺序排列的键都已经被取了,我们应该使用什么键呢?
被取了,而且
也被取了。
都是不实用的,也不能保证在任何地方都能用,那又怎样?
?它不会在任何地方都能用。可能是两个字符的映射?但哪一个是d遵循什么记忆逻辑?

我也很难回答这个问题,我在互联网上的某个地方(我不记得在哪里)找到了这样做的人:

:nnoremap s:exec“normal i”.nr2char(getchar())。“\e”


它并不完美,因为它不支持计数,但可以用
重复,所以其他用户可能也会对此感到满意。

我知道添加一个简单的基本键绑定是什么意思,比如:nmap I\u r很容易,但在新环境中进行快速编辑时,这相当不方便?不是吗你使用.vimrc?@Zaffy不,我不使用。我不太使用vim,当我使用它时,通常是我第一次登录到该系统,可能是嵌入式系统,通常导入自定义的.vimrc是不实际的。当你经常使用没有.vimrc的vim时,如果我有时有一些功能,那么它会让人倍感恼火,有时甚至没有t、 您不需要导入它。Vim会自动执行此操作。
我的意思是,支持计数和重复。
它与我的Vim一起工作,奇怪。:)您插入一个“x”
ix
然后键入
100。
您插入了100x。你为什么说vim不支持它?或者我理解你错了?我不知道为什么会这样,但你是如何纠正的。是的,我现在做了3次击键,但由于
Esc
键相当远,需要移动整只手(YMMV,取决于你的手的大小),感觉好像是两次击键
r
应该不是问题;许多Vi(m)用户调整他们的键盘(用Esc或Ctrl交换大写锁定)和/或使用,这与Esc相同。键盘映射也适用于其他用途,而不仅仅是Vi,如果我只使用一个计算机系统和一个操作系统。。。啊,一个单一的键盘布局存储在一个http URL后面,然后驱动程序/工具供所有操作系统下载和应用,最好没有管理员权限。是的,它通常是一个系统范围的重新映射,特别是当它涉及大写锁定时。通常,你面前的物理系统数量非常有限,所以这只是重新配置你的个人设备的问题。我同意,对我来说,任何使用修改键的操作都几乎和键入两个未修改的键一样低效。对于逻辑行为,我会选择对于下一个keystoke,就像vi处于插入模式一样,将可视光标放在现在显示的位置“,我认为这很好地消除了插入前/插入后之间的歧义。另外,今天重新映射到该功能的
似乎是常见的字符,但我没有资格估计在vi是新的时候选择什么是好的键。无论如何,我认为你的第一段是正确的答案,所以接受:)继续我之前的评论:实际上,
ctrl-o
可以