xiaopenyou
V2EX  ›  Vim

在vim中,想批量替换一大串字符,怎么操作便捷?

  •  
  •   xiaopenyou · Jan 25, 2014 · 6324 views
    This topic created in 4666 days ago, the information mentioned may be changed or developed.
    y复制后,没办法粘贴到:%s里?那怎么操作呢?肯定是有快捷办法的吧?
    10 replies  •  1970-01-01 08:00:00 +08:00
    kran
    kran
    Jan 25, 2014❤️1
    1
    试试在命令模式下按Ctrl-f。
    pright
    pright
    Jan 25, 2014 via Android
    2
    选中要替换的输:再输s,效果就是:'<,'>s//foo/g,不过如果替换字串太长就不好用
    123123
    123123
    Jan 25, 2014
    3
    目前做法是先复制到系统剪贴板,命令中用Shift+Insert粘帖
    wklken
    wklken
    Jan 25, 2014
    4
    :w
    ctrl+z
    sed -i .......可以用‘#’代替‘/’不用转义中间的‘/’
    fg
    :e

    done!
    timothyqiu
    timothyqiu
    Jan 26, 2014❤️1
    5
    输完 :%s 后按 Ctrl+R "
    582033
    582033
    Jan 26, 2014
    6
    @xiaopenyou 忽然想起来可以用正则替换的嘛, :%s/^foo.*you.*bar$/me/g
    xiaopenyou
    xiaopenyou
    OP
    Jan 26, 2014
    7
    @pright
    @123123
    @wklken
    @timothyqiu
    @582033
    谢谢大家哦!比较还是:%s Ctrl+R "和:'<,'>s//foo/g最快捷
    123123
    123123
    Jan 26, 2014
    8
    Ctrl+R " 挺不错的,学习了
    samuelchen
    samuelchen
    Jan 26, 2014
    9
    :%s/要替换的/替换后的/gc 最后的c加上是逐条确认,不加也可
    chemzqm
    chemzqm
    Jan 26, 2014
    10
    set clipboard='unnamed' 可以让默认粘贴板使用系统粘贴板而不是vim的无名粘贴板。
    不过我通常做法是用vf[末尾字符]然后几个分号,然后c改为需要的结果,然后n和.或者N和,需要全局大量替换采用:%s,因为这个命令要考虑转义的问题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1334 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 21:02 · PVG 05:02 · LAX 13:02 · JFK 16:02
    ♥ Do have faith in what you're doing.