例如我们有如下代码:
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 的吗?
1
tachikomachann 2020-10-12 11:43:34 +08:00 via Android 1
vimrc 里面加这个配置
xnoremap p pgvy " 粘贴时不置换剪贴板 |
2
tamlok 2020-10-12 11:55:23 +08:00 via Android 1
可以把要粘贴的东西复制到系统剪切板 "+y
|
3
jdhao 2020-10-12 13:23:23 +08:00 via Android 1
定义一个 mapping,xnoremap <leader>p "0p
|
4
jiezhi 2020-10-12 13:32:08 +08:00 1
默认用的是匿名寄存器吧,可以把内容复制到指定寄存器的
|
5
SiliusMo 2020-10-12 14:15:32 +08:00 1
换个思路。
1. /long 查找 long 2. cw short <esc> 替换 long 为 short 3. n 寻找下一个目标 4. . 重复替换 |
6
jdhao 2020-10-12 14:46:04 +08:00 via Android 1
|
8
jdhao 2020-10-12 14:48:53 +08:00 via Android
或者干脆在命令行使用 %s/long/short/gc,这样也很快速替换自己想替换的 pattern
|