Vim:用于删除,删除整行,yank和x的寄存器的简明比较

时间:2015-01-27 16:18:13

标签: vim

我可以找到很多关于Vim中“剪切”和“复制”文本的狭隘方面的部分解释以及它如何工作的几个相互矛盾的想法,但我找不到简单的概述。我正在寻找的是将它们放在一个地方的东西。我很确定我在这里有什么不对,并且有差距,但我想要一个完整的简明解释,如下所示:

key   operation     register used   notes
y     yank          "" "0 and "1
x     del 1 char    "1              why doesn't xxxxxx fill all registers?
dd    del line      "" and "1
d[?]  del [motion]  "1

a p (put) with no specified register will put from register "1 (I think)

if an operation uses register "1 to store deleted/yanked text, then "1's
previous contents will be pushed to "2 and so on up to register "9 whose
previous content will disappear.

a "[alphanumeric] (quote followed by alphanumeric) before a d or y will
put the result into that register in addition to the registers it would
normally go in.

是的,这个问题在人们询问某个特定操作的详细信息时多次被部分重复。如果有任何我错过的操作将文本放入删除或抽屉寄存器中,我也想知道这些操作。

2 个答案:

答案 0 :(得分:5)

您应该可以在:help "0找到完整的说明。您的摘要大部分都是正确的,但是,小删除会丢失,而这些删除会进入特殊的"-注册。

key   operation     register used     notes
y     yank          "" and "0
x     del 1 char    "" and "-         small delete register
dd    del line      "" and "1
d[?]  del [motion]  "" and ("1 or "-) depending on the length of the text

a p (put) with no specified register will put from the default register ""

答案 1 :(得分:0)

对于那些懒得输入:help "0的人,正如Ingo的答案所示,这是我帮助所说的缩写版本:

  
      
  1. 未命名注册""
  2.         

    Vim使用" d"," c"," s"," x"删除文本。命令或用yank" y"复制命令,无论是否使用特定寄存器(例如" xdd)。这就像未命名的寄存器指向最后使用的寄存器。因此,当使用大写寄存器名称附加时,未命名的寄存器包含与指定寄存器相同的文本。对于任何未指定寄存器的put命令(p或P),Vim使用未命名寄存器的内容。此外,您可以使用名称'"'来访问它。这意味着您必须键入两个双引号。写入""寄存器写入寄存器" 0。

         
        
    1. 编号寄存器" 0至" 9
    2.         

      Vim用来自yank和delete命令的文本填充这些寄存器。编号寄存器0包含最近的yank命令中的文本,除非命令指定了另一个[" x]寄存器。编号寄存器1包含最近删除或更改命令删除的文本,除非命令指定另一个寄存器或文本少于一行(然后使用小删除寄存器)。使用这些移动命令对delete运算符进行例外:%,(,),`,/,?,n,N,{和}。然后始终使用注册" 1。如果删除在一行内,也使用" - 寄存器。

           

      每次连续删除或更改,Vim都会移动先前的内容   将寄存器1放入寄存器2,2,将其转换为3,依此类推,丢失以前的寄存器   登记册9的内容。

           
          
      1. 小删除寄存器" -
      2.         

        该寄存器包含删除少于一行的命令的文本,   除非命令使用[" x]指定寄存器。