V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
tesorouo
V2EX  ›  问与答

Vim 如何快速粘贴多次

  •  
  •   tesorouo · 2020-10-12 11:29:45 +08:00 · 1790 次点击
    这是一个创建于 1285 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如我们有如下代码:

    def cool():
        var_1 = "long long long long long string"
        var_2 = "long long and long long long string"
    

    单纯考虑复制粘贴不用替换,我已经 yank 了单词 short,要粘贴替换掉随机几个 long 。

    如果我光标移动到第一个要替换的 long,高亮粘贴以后再去粘贴别的地方默认粘贴出来的就会是 long 而非一开始复制的 short,虽然"0p 可以粘贴出 short 但是真的很麻烦,有什么正确的粘贴方式是可以保持寄存器依然储存 short 而非替换成 long 的吗?

    10 条回复    2020-10-12 18:08:47 +08:00
    tachikomachann
        1
    tachikomachann  
       2020-10-12 11:43:34 +08:00 via Android   ❤️ 1
    vimrc 里面加这个配置

    xnoremap p pgvy " 粘贴时不置换剪贴板
    tamlok
        2
    tamlok  
       2020-10-12 11:55:23 +08:00 via Android   ❤️ 1
    可以把要粘贴的东西复制到系统剪切板 "+y
    jdhao
        3
    jdhao  
       2020-10-12 13:23:23 +08:00 via Android   ❤️ 1
    定义一个 mapping,xnoremap <leader>p "0p
    jiezhi
        4
    jiezhi  
       2020-10-12 13:32:08 +08:00   ❤️ 1
    默认用的是匿名寄存器吧,可以把内容复制到指定寄存器的
    SiliusMo
        5
    SiliusMo  
       2020-10-12 14:15:32 +08:00   ❤️ 1
    换个思路。

    1. /long 查找 long
    2. cw short <esc> 替换 long 为 short
    3. n 寻找下一个目标
    4. . 重复替换
    jdhao
        6
    jdhao  
       2020-10-12 14:46:04 +08:00 via Android   ❤️ 1
    @SiliusMo 或者,1,直接搜索 /long
    2,cgn,然后输入 short
    3,重复按 .,所有 long 都会被替换为 short
    jdhao
        7
    jdhao  
       2020-10-12 14:46:51 +08:00 via Android
    @jdhao 第二步输入完 short,要退出 insert 模式
    jdhao
        8
    jdhao  
       2020-10-12 14:48:53 +08:00 via Android
    或者干脆在命令行使用 %s/long/short/gc,这样也很快速替换自己想替换的 pattern
    dullwit
        9
    dullwit  
       2020-10-12 14:55:08 +08:00
    @SiliusMo #5
    @jdhao #6 %s/long/short/gc,用 c 标识位不需要手动寻找下一个目标
    DCCooper
        10
    DCCooper  
       2020-10-12 18:08:47 +08:00 via iPhone
    @SiliusMo #5 只适用于被替换目标唯一的情况吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2750 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:48 · PVG 20:48 · LAX 05:48 · JFK 08:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.