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

Vim命令行模式下无需norm命令实现寄存器读写的方法咨询

Vim命令行模式无norm的缓冲区读写操作

问题1:将寄存器'a'的内容插入到第5行第6个位置

使用替换命令即可实现,无需依赖normal命令:

:5,5s/\%6c/\=@a/
  • 5,5限定仅操作第5行
  • \%6c精确匹配该行第6个字符的位置
  • \=@a表示将匹配位置替换为寄存器'a'的内容,完成插入效果

问题2:将第3行第4列到第5行第2列的内容存入寄存器'b'

通过Vim内置的字符串处理函数和寄存器操作函数实现,执行以下命令:

:call setreg('b', join(map(range(3,5), {ln -> strpart(getline(ln), ln==3 ? 3 : 0, ln==3 ? len(getline(ln))-3 : 2)}), "\n"))
  • range(3,5)遍历目标行范围(第3至第5行)
  • 针对不同行做字符截取:
    • 第3行:从第4个字符(Vim字符串索引从0开始,对应索引3)截取到行尾
    • 第4、5行:从开头截取前2个字符
  • join(..., "\n")把各行截取的内容拼接成带换行符的完整文本
  • setreg('b', ...)将最终文本存入寄存器'b'

内容的提问来源于stack exchange,提问作者Ivan Dimitrov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:57:10