如何在vim的ex模式下从缓冲区粘贴?

时间:2012-10-24 06:32:04

标签: linux vim buffer

我在从文件中复制某些文本然后将其复制到新的拆分窗口时出现问题 3yy |新| P

在命令模式下工作

当我按下

复制后在分割窗口中

'p' 它的工作

3 个答案:

答案 0 :(得分:4)

我明白你想:

  1. 在当前缓冲区
  2. 中拉出当前行和下面的两行
  3. 在新的水平拆分中打开一个空缓冲区
  4. 将这三行粘贴到空缓冲区中。
  5. 这是对的吗?

    我不知道为什么你会想要在Ex模式下这样做,而在正常模式下这么容易(和工作):

    3yy
    :new<cr>
    p
    

    我认为您混淆了 ex 模式,可通过Q命令模式访问,可通过:访问。您可能还会混淆:p[rint]命令和:pu[t]命令。

    普通模式执行以下操作:

    :.,+2y|new|put!
    

    知道您也可以直接将这三行写入文件:

    ,这可能会有所帮助
    :.,+2w filename
    

答案 1 :(得分:2)

您可以使用以下某项从Vim中的剪贴板进行复制:

+ P

* P

SHIFT INSERT

您使用哪一个取决于您的环境。

如果您使用的是gVim或MacVim,则需要"+p

如果您从命令行使用Vim,则需要"*p

如果你处于插入模式或ex模式(我认为)你使用 SHIFT INSERT

通过插入我的意思是 HOME PAGE UP DELETE

的关键

说明:

  • "表示您要指定注册
  • 有26个自定义寄存器 - 每个字母1个
  • 还有许多其他寄存器(see this
  • +"指的是未命名的缓冲区,它代表系统剪贴板
  • p是正常的put命令

有关缓冲区的更多信息:

如果需要,可以将不同的文本存储在不同的缓冲区中。

要将3行划线到名为 x 的缓冲区,请使用:

"x3yy

将名为 y 的缓冲区的内容粘贴到光标上方:

"yP

答案 2 :(得分:0)

p 只是vi命令,因此在ex中应为 pu 。 或者您也可以使用双引号“ p ” np n 是缓冲区寄存器中的数字,“ 2p ”表示您制作的第二个最老的拉克。