V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
tesorouo
V2EX  ›  问与答

Vim 如何快速粘贴多次

  •  
  •   tesorouo · Oct 12, 2020 · 2605 views
    This topic created in 2023 days ago, the information mentioned may be changed or developed.

    例如我们有如下代码:

    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 replies    2020-10-12 18:08:47 +08:00
    tachikomachann
        1
    tachikomachann  
       Oct 12, 2020 via Android   ❤️ 1
    vimrc 里面加这个配置

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

    1. /long 查找 long
    2. cw short <esc> 替换 long 为 short
    3. n 寻找下一个目标
    4. . 重复替换
    jdhao
        6
    jdhao  
       Oct 12, 2020 via Android   ❤️ 1
    @SiliusMo 或者,1,直接搜索 /long
    2,cgn,然后输入 short
    3,重复按 .,所有 long 都会被替换为 short
    jdhao
        7
    jdhao  
       Oct 12, 2020 via Android
    @jdhao 第二步输入完 short,要退出 insert 模式
    jdhao
        8
    jdhao  
       Oct 12, 2020 via Android
    或者干脆在命令行使用 %s/long/short/gc,这样也很快速替换自己想替换的 pattern
    dullwit
        9
    dullwit  
       Oct 12, 2020
    @SiliusMo #5
    @jdhao #6 %s/long/short/gc,用 c 标识位不需要手动寻找下一个目标
    DCCooper
        10
    DCCooper  
       Oct 12, 2020 via iPhone
    @SiliusMo #5 只适用于被替换目标唯一的情况吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1090 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 411ms · UTC 18:30 · PVG 02:30 · LAX 11:30 · JFK 14:30
    ♥ Do have faith in what you're doing.