gpt4 book ai didi

vim - 如何在 Vim 中有效地将一组行与另一组行连接起来?

转载 作者:行者123 更新时间:2023-12-05 00:01:51 25 4
gpt4 key购买 nike

比如说,我有 10 行连续的行,然后是另外 10 行,例如:

1
2

10
a
b

j
我想将第二个范围 ( aj ) 中的行附加到第一个范围 ( 110 ) 中的行,以便上述 20 行变成以下 10 行:
1a
2b

10j
我可以使用哪些 Vim 命令来实现这一点?

最佳答案

我会开始与 a 保持一致, 然后是 CTRL-V, 10j$d逐块删除所有内容。

然后:set virtualedit=all , 转到第一行,例如向右移动光标 10 个字符,然后按 p。现在删除十行中的第一个空格序列。

还有第二种方式,基本相同:

  • 10dd
  • :call setreg('"', @", ' ^V ')哪里 ^V 输入 CTRL-V CTRL-V
    (这将逐块转动寄存器)
  • 电话
  • :,+10s/ //g

  • 您也可以以编程方式执行此操作:使用 Q 进入 Ex 模式,然后键入以下内容
     let i = 1
    while i <= 10
    call setline(i, getline(i) . getline(11))
    11d
    let i = i + 1
    endwhile
    vi

    如果您打算重用它,请将其放入您的 vimrc 中:
     function PasteLines(startline,numlines)
    let i = 0
    while i < a:numlines
    call setline(a:startline+i, getline(a:startline+i) . getline(a:startline+a:numlines))
    exec '' . (a:startline+a:numlines) . 'd'
    let i = i + 1
    endwhile
    endfunction

    并调用它:
     :call PasteLines(1, 10)

    其中 1 是第一行,10 是行数。因此您需要 20 行。

    关于vim - 如何在 Vim 中有效地将一组行与另一组行连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8746429/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com