You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Vim列编辑模式将指定文本块移至另一文本块右侧?

在Vim中实现上下文本块的横向拼接

针对你需要把下方4行内容粘贴到上方4行右侧并对齐的需求,可以按以下步骤操作:

步骤1:复制下方的4行内容

  • 光标移动到下方第一行(LHR所在行)
  • 按V进入行可视化模式,向下移动光标选中4行
  • 按y完成复制,此时这4行内容已存入默认寄存器

步骤2:给上方4行补充足够空格(保证对齐)

  • 光标移动到上方第一行(KE987 ICN所在行)
  • 按V进入行可视化模式,向下选中4行
  • 执行命令::'<,'>s/^.*\zs/\=repeat(' ', 35 - len(getline('.')))/
    • 这里的35是目标总长度(原行长度+空格数),可以根据需要调整,确保所有行长度一致,预留出右侧内容的位置

步骤3:用列编辑模式粘贴右侧内容

  • 光标移动到上方第一行的行尾
  • 按Ctrl+V进入列可视化模式,向下移动光标选中4行的行尾位置
  • 按p粘贴,此时复制的4行内容会横向对齐到上方每行的右侧

替代方法(无需手动补空格)

如果不想手动计算空格长度,可以用寄存器拼接每行:

  1. 复制下方4行到寄存器a:选中4行后按"ay
  2. 光标移到第一行开头,执行命令:
    :for i in range(1,4)
    :    call setline(i, getline(i) . repeat(' ', 30 - len(getline(i))) . split(getreg('a'), '\n')[i-1])
    :endfor
    
    • 同样可以调整30来控制空格的多少,实现对齐效果

完成后就能得到你期望的左右对齐格式。

内容的提问来源于stack exchange,提问作者Chan Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 22:27:18