2017-03-06 57 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在加入線條時還會留下空間。