8

我在从文件复制某些文本然后将其复制到新的拆分窗口时遇到问题。
3yy|新|p

在命令模式下它的工作

就像我按下

复制其工作后拆分窗口中的“p”

4

3 回答 3

5

我了解您想要:

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

那是对的吗?

我不明白为什么你想在 Ex 模式下做它,而它在正常模式下很容易(并且工作):

3yy
:new<cr>
p

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

在正常模式下执行以下操作:

:.,+2y|new|put!

知道您也可以将这三行直接写入文件可能会有所帮助:

:.,+2w filename
于 2012-10-24T07:15:51.247 回答
2

您可以使用以下方法之一从 Vim 的剪贴板中复制:

"+p

"*p

SHIFTINSERT

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

如果你使用 gVim 或 MacVim,你会想要"+p

如果你从命令行使用 Vim,你会想要"*p

如果你处于插入模式或前模式(我认为)你使用SHIFTINSERT

通过插入,我的意思是通过HOME,PAGE UPDELETE

解释:

  • "意味着你要指定一个寄存器
  • 有 26 个自定义寄存器 - 每个字母 1 个
  • 还有很多其他的寄存器(见这个
  • +or"指的是未命名的缓冲区,它代表系统剪贴板
  • p是普通的 put 命令

有关缓冲区的更多信息:

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

要将 3 行拉到名为x的缓冲区,请使用以下命令:

"x3yy

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

"yP

于 2012-10-24T06:39:16.460 回答
0

p只是 vi 命令,所以它应该是pu in ex 而不是。或者您可以使用双引号"p"npn是缓冲区寄存器中的数字,“2p表示你所做的第二个最旧的 yank。

于 2019-05-22T07:53:30.837 回答