Vim常用命令小記(6)——撤銷、重做和重復命令


撤銷和重做命令


<Undo> 或 u            撤銷 [count] 次更改。

:u[ndo]                    撤銷一次更改。

:u[ndo] {N}              轉到改變號 {N} 之后。

CTRL-R                    重做 [count] 次被撤銷的更改。

:red[o]                     重做一個被撤銷的更改。

U                             撤銷最近對特定行所作的一系列更改。

單次重復


.           重復上次改變,有計數前綴的重復 [count] 次。
            如果 'cpoptions' 包括 'y' 標志,也可以用來重復一個抽出操作。不能重復命令行命令。
            簡單的改變操作可以用 "." 重復。
            如果沒有數字前綴,使用上次的改變的重復次數。
            如果輸入一個重復次數,就用它取代上次的計數。
            如果上次改變的操作使用數字編號的寄存器,則逐次遞增使用寄存器的序號。
            如果重復的命令涉及可視的選擇區域,使用相同_大小_的區域。

@:        重復上次命令行 [count] 次。

多次重復


:[range]g[lobal]/{pattern}/[cmd]         在 [range] 界定的匹配模式 {pattern} 的文本行上執行 Ex 命令 (缺省是 ":p")。

:[range]g[lobal]!/{pattern}/[cmd]        在 [range] 界定的_不_匹配模式 {pattern} 的文本行上執行 Ex 命令 (缺省是 ":p")。

:[range]v[global]/{pattern}/[cmd]        等同於 :g!。

 

重復組合操作


q{0-9a-zA-Z"}        在寄存器 {0-9a-zA-Z"} 里記錄鍵入的字符 (大寫名字的寄存器表示附加鍵入的內容)。
                              'q' 命令不能在執行寄存器時使用。同樣,在映射里也不能。

q                            停止記錄。(停止記錄的 'q' 不會被保存在寄存器里,除非它是映射的結果)

@{0-9a-z".=*}        執行寄存器 {0-9a-z".=*} 的內容 [count] 次。
                              不能用寄存器 '%' (當前文件名) 和 '#' (輪換文件名) 。
                              "@=" 則會提示你輸入一個表達式。這個表達式的結果會被執行。

@@                        執行上次執行的 @{0-9a-z":*} [count] 次。

:[addr]*{0-9a-z".=} 或 :[addr]@{0-9a-z".=*}
                          把寄存器 {0-9a-z".=*} 里的內容看成一個 Ex 命令執行。
                          首先,把光標放在 [addr] 行 (缺省是當前行) 上。
                          如果 'cpoptions' 設定了 'e' 標志位而寄存器的內容最后一行沒有 <CR>,會自動加上。
                          ":*" 命令只有在 'cpoptions' 設置 '*' 標志位時才會識別。如果用 'nocompatible',這並非缺省。
                          ":@=" 使用最近使用的表達式。表達式執行的結果被當作 Ex 命令執行。
                          這些命令里,不識別映射。

:[addr]@:            先把光標放在 [addr] 行 (缺省是當前行) 上,然后重復上次的命令行。

:[addr]@@          先把光標放在 [addr] 行 (缺省是當前行) 上,然后重復上次的 :@{0-9a-z"}。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM