首页 > 解决方案 > 如何在没有换行符和空格的情况下 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

如何避免换行和空格?

标签: vim

解决方案


在你放之前,重写默认寄存器的内容以修剪空白,你可以这样做

:let @@ = trim(@@)

通过删除前导空格和尾随空格,包括尾随换行符,寄存器将变为逐字符(而不是逐行),因此 Vim 在放置寄存器内容时不会在寄存器内容之前换行。

或者,如果您可以控制剪切内容的时间,则在使用D. 转到第一个非空白字符后,使用删除到换行符^。逐字符删除将在 register 中结束"-,不会被后续行 delete 覆盖(dd删除最后一行中的剩余空格),因此稍后您可以将其与"-p.


推荐阅读