vim - 如何在没有换行符和空格的情况下 dd 整行并将插入粘贴到其他行?
问题描述
例如:
1: if doc.text =~ /test/
2: content = doc.xpath('shoud be replaced') // this string in quotes will be replaced with `vi'p`
3: end
4: /html/body/table[3]/tbody/tr/td[5] // dd this line
步骤:dd
第 4 行,然后跳转到第 2 行vi'p
如果 idd
第 4 行并粘贴以将引号中的字符串替换为第 2 行,则该行将包含换行符和空格,如下所示:
1: if doc.text =~ /test/
2: content = doc.xpath('
3: /html/body/table[3]/tbody/tr/td[5]
')
4: end
如何避免换行和空格?
解决方案
在你放之前,重写默认寄存器的内容以修剪空白,你可以这样做
:let @@ = trim(@@)
通过删除前导空格和尾随空格,包括尾随换行符,寄存器将变为逐字符(而不是逐行),因此 Vim 在放置寄存器内容时不会在寄存器内容之前换行。
或者,如果您可以控制剪切内容的时间,则在使用D
. 转到第一个非空白字符后,使用删除到换行符^
。逐字符删除将在 register 中结束"-
,不会被后续行 delete 覆盖(dd
删除最后一行中的剩余空格),因此稍后您可以将其与"-p
.
推荐阅读
- javascript - 使用 Mongoose 删除数组中的对象以减少条件不工作
- python - 导入 _imaging 时 DLL 加载失败:
- usb - 树莓派 4B 检测不到 USB 存储设备
- python - pandas - 用低于/更少的观察百分比替换值
- amazon-web-services - 如何从具有不同 CIDR 范围的公共子网上的实例连接到私有子网上的实例?
- ios - 为什么在设置中显示应用之前需要询问所有权限?
- java - 如何在码头中禁用 slf4j
- rust - 如何使用迭代器逐个迭代集合中的两个元素?
- c# - 遍历不断增长的列表并记住位置
- c++ - 使用自定义 Yocto SDK 促进交叉编译失败并出现“没有这样的文件或目录”错误