2017-03-06 61 views
-1

有一个Vimgolf锻炼将此转换:这是什么Vim序列09.在做什么?

- One number per line - 
----------------------- 
2,3,5,7, 
11,13,17, 
19,23,29, 

为此使用议会:

2 
3 
5 
7 
11 
13 
17 
19 
23 
29 

一个可能的解决方案是:

dj3JAwr<CR><Esc>[email protected] 

我的问题是 - 什么是“09 @“。命令的一部分呢?我明白0是句子的开头,9是结尾,而“。”意味着重复命令。

但是正在重复什么命令?并做“09 @”。按顺序串在一起意味着什么不同?

回答

2

[email protected]是:

  • 0线第一个字符

  • [email protected]执行寄存器. 倍的内容。

寄存器.被定义为:

:register . 

这给wr^@,所以vim这里正在改变:

         quote_. quote. E29 
".  Contains the last inserted text (the same as what is inserted 
     with the insert mode commands CTRL-A and [email protected]). (...) 

您仍然可以通过执行检查其内容换行符变成空字符,不要给你所期望的。

因此dj3JAwr<CR><Esc>[email protected]永远不可能成为问题的解决方案,尤其是J在加入线条时还会留下空间。