为什么vim粘贴的行为取决于yanking方法
我看到不同的粘贴行为取决于我如何拉线.我想知道为什么.
如果我从正常模式开始划线: ^v$y ^去行的开头 v进入可视模式 $到最后一行 你要猛拉 然后我使用p粘贴它按预期工作. 但是,当我从正常模式开始并使用直线视觉模式拉线时: Vy V按行进入可视模式 你要猛拉 然后我使用p粘贴,我看到该行被粘贴在当前行下方.这就像粘贴操作首先打开一个新行然后粘贴那里. 例.开头的行: Line1 Line2 Line3. Insert here 我用方法1猛拉了Line2. 我将光标移动到Line3的点,然后按p粘贴.我得到这个结果: Line1 Line2 Line3.Line2 Insert here 但是当我使用yanking方法做同样的事情时,我得到了这个结果: Line1 Line2 Line3. Insert here Line2 如果:寄存器的内容在两种情况下是相同的,为什么粘贴工作不同? 编辑: 找到答案here 即使寄存器内容相同;寄存器的类型根据yanking方法而变得不同,并且不同的寄存器类型使得粘贴做不同的事情. 解决方法
说明
如果仔细观察,您应该看到是否使用了v $或V: :registers ab --- Registers --- "a foo "b foo^J ^ J是换行符,表示整条线已经被拉出. 动作要么影响整行,要么影响开始和结束位置之间的字符.在Vim内部,这被称为 通过插件启动 我需要将寄存器内容“转换”成某种(字符/线性/块状)模式,所以我经常为它编写UnconditionalPaste plugin.它提供了强制某种模式的内置粘贴命令的gcp,glp等替代方法(此时此主题有几种变体,例如用逗号或查询字符连接粘贴). 有了它,您可以使用gcp / gcP粘贴光标位置之前/之后,无论您如何拉动文本(例如,从您的问题中通过V的线性视觉模式). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |