vim中的复制与粘贴

初次使用Vim,还没来得及看手册的用户,肯定会疑惑ctrl+c、ctrl+v无效了,只能在gvim中鼠标选择,然后右键复制和粘贴。事实上Vim的剪切板十分强大,甚至比windows下那些独立的剪切板软件还有强大。

一、可视模式下选择文本

v 逐字逐行选择,上下左右移动有效。
V 整行选择,上下移动有效,左右仅移动光标。
ctrl-v或ctrl-Q(Windows) 矩形块选择,上下左右移动有效。
o 光标移动到选择文字的另一端,(矩形块选择时o只是移到对角上,O移动到同一行另一个角上。)

二、VIM复制命令

y 复制,适用于选择文本后再按y复制
yw 复制一个单词(包括空格) ye 复制一个单词(不包括空格)
yy 复制一整行,类似dd删除一整行(包括行尾换行符)
Y 复制一整行(包括行尾换行符),不同于D删除到行尾(不包括换行符)
注:y为操作符,可加计数前缀,例如:2yw=y2w(复制两个单词)

三、VIM中的寄存器

1. 复制后的文本会保存在剪切板,Windows中的剪切板相当于Vim中的寄存器。
2. 查看寄存器的内容,用 :reg 命令
3. VIM中共有九种类型的寄存器: (更多寄存器帮助 :help registers)

  1. 无名寄存器 ""
  2. 10 个编号寄存器 "0 到 "9
  3. 行内删除寄存器 "-
  4. 26 个命名的寄存器 "a 到 "z 或者 "A 到 "Z
  5. 四个只读寄存器 ":、".、"% 和 "#
  6. 表达式寄存器 "=
  7. 选择和拖放寄存器 "*、"+ 和 "~
  8. 黑洞寄存器寄存器 "_
  9. 最近搜索模式寄存器 "/

四、VIM复制粘贴步骤

1、将选择文本复制进寄存器

<">+<寄存器>+<复制文本>

例如:复制一单词到系统剪切板(Windows中 * 和 + 寄存器效果一致)

"*yw

2、粘贴寄存器中的内容

<">+<寄存器>+

例如:粘贴该单词到系统任意位置

"*p

<">+<寄存器>+<复制文本>"*yw<">+<寄存器>+"*p

发表回复