2012-09-24 52 views
22

Vimmers知道.可以重複簡單的更改。我試圖建立一個可以重複或不重複的列表,但是有一個列表嗎?點命令可以重複什麼?

我試着列出我所知道的是重複的:他們都是普通模式命令:

  • 文本插入:aAiIo,涉及寄存器O
  • 文本的變化:cCdDpgpPgPsSxX
  • 其他文本的變化:JgJrgrRgRgUgugwgqg?~g~<>=
  • 等效這些操作在視覺模式下。
  • 控制的操作:C-AC-X
  • gi將重複插入在當前光標位置,而不是最後的插入位置。所以它排序作品。

但不包括:

  • 所有移動和顯示命令(太多在這裏列出)
  • 所有摺疊的命令(Z-命令,也很多)
  • 馬克( m
  • 換人重複(&g&
  • 科隆或篩選命令(!:,Q
  • 宏錄製或播放(q@,將重複錄製或播放過程中完成的最後一次重複動作)。
  • DIFF提出,並得到(dpdo
  • 撤消(uUC-R
  • 洋基(y

我知道tpope的repeat插件可以自定義插件訂閱重複機制。但是默認情況下,上面的列表是好的嗎?

+0

我敢說它可能重複任何'undo'將撤消。我想不出任何與我的觀點相沖突的東西(但我現在有一段時間沒有使用vim,所以事情變得模糊)。也許找到'撤消'將撤消的事情比找到事情列表更容易'。'將會重複。 –

+0

@RandyMorris「撤消」可以撤消cmd行(例如:s/foo/bar /)更改,但「。」不能重複他們。 – Kent

+0

AFAK,「c,C,...」可以用「。」重複。 –

回答

2

與v/V的某些組合可以重複「點」。

例如

Vgq,V/VU或v /武

4

相信一個變化是修改當前緩衝區的任何命令。 .命令不包括Ex命令(因爲這是一種不同的模式,我猜是在遠程歷史記錄中用vi鍵入的),並且可以選擇包含yanks。

因此,對於您的列表,:help change.txt,過濾Ex命令,可能是最好的來源。

請注意,當更改命令不能應用(即發出嗶嗶聲)時,它也不會被重複註冊;命令執行必須成功。

+1

我有_feeling_,你的回答是準確的,直觀的,但它不是因爲'.'不重複'&'也不'g&'。 – Benoit

+1

'&'和'g&'自己重複一個命令(最後':s'),所以我想這就是排除它們的原因。 – rburny

2

蒂姆波普的repeat.vim可以使repeat更多的東西(包括像surround.vim和其他必須擁有的東西)。

要重複一個議案,請看,/;(正向/反向)。

要重複Ex命令,@是一個很好的組合鍵

+0

我知道repeat.vim(在問題中提到過)。是的,'',''可以重複'fFtT'運動。也許還要提到'nN'。 – Benoit

+0

@Benoit哦。我完全忽略了這一點。我想我使用'/ repeat'來掃描整個頁面上的提及...對不起 – sehe