vim 下粘贴复制,如何做到最快

2016-02-27 08:12:59 +08:00
 kkd

现在想把一个变量复制到两个或者三个地方,我的做法是:

  1. yiw yield 变量 A;
  2. viw 选中变量 B;
  3. "0p 从寄存器粘贴到变量 B 处;
  4. viw 选中变量 C;
  5. "0p 从寄存器粘贴到变量 C 处;

有没有更好的方法?

4669 次点击
所在节点    Vim
15 条回复
joyeblue
2016-02-27 08:23:20 +08:00
换个思路,用 . 来执行后面的操作。

1. 在变量 A 上 ciw ,然后输入变量 A
2. 移动到变量 B 处 按"."
3. 移动到变量 C 处 按"."
如果有更多的地方依次类推,如果 B 和 C 变量相同,可以先匹配,
然后上下移动,再执行"."即可。
batman2010
2016-02-27 09:18:08 +08:00
在变量的开头处, ye 复制;
移动光标;
p 粘贴。
liko
2016-02-27 09:37:13 +08:00
输入前几个字符,然后 ctrl+p 选择
watana
2016-02-27 09:37:19 +08:00
按照你的做法:

1. 改变了「无名寄存器」和「复制寄存器」
2. viw 并没有改变「无名寄存器」
3. p
4. viw 选中 C
5. p

你看我又帮你节省了 4 个按键
arakashic
2016-02-27 09:43:37 +08:00
1. nmap <F3> viw"0p
2. yiw
3. 移动到 B
4. <F3>
5. 移动到 C
6. <F3>

btw, y=yank
watana
2016-02-27 09:51:51 +08:00
我忘记了 viw p 之后会和 " 寄存器互换内容
caixiexin
2016-02-27 10:34:46 +08:00
@watana 可以在 vimrc 配置文件里设置,让粘贴的时候不替换寄存器内容的
HiHi
2016-02-27 10:39:53 +08:00
jsonline
2016-02-27 11:16:09 +08:00
neoview
jsonline
2016-02-27 11:16:16 +08:00
neovim
kkd
2016-02-27 11:27:43 +08:00
@caixiexin 应该如何设置,可以使“让粘贴的时候不替换寄存器内容的”?
搜了一下没搜到简单的方法。
uyhyygyug1234
2016-02-27 11:54:10 +08:00
@kkd

uyhyygyug1234
2016-02-27 11:54:47 +08:00
你说的是不是这个啊
caixiexin
2016-02-27 17:35:35 +08:00
@kkd
@uyhyygyug1234 就是这个哈
uyhyygyug1234
2016-02-27 21:25:11 +08:00
@caixiexin 我感觉也是,当年被坑死了,还好想出来了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/259444

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX