vim有許多命令,網上搜有一堆貼子、文章列舉出各種功能的命令。 對於“=”、“d”、“y”,我在無意中發現了它們所具有的相同的一些用法,先舉以下三個例子: 其中,n為行號。註意行號後面接的是大寫字母“G”。而“nG”恰好是游標移動到第n行的命令。 對於“=”,“=nG”的意思就是從當前行到第n行之間 ...
vim有許多命令,網上搜有一堆貼子、文章列舉出各種功能的命令。
對於“=”、“d”、“y”,我在無意中發現了它們所具有的相同的一些用法,先舉以下三個例子:
=nG
dnG
ynG
其中,n為行號。註意行號後面接的是大寫字母“G”。而“nG”恰好是游標移動到第n行的命令。
對於“=”,“=nG”的意思就是從當前行到第n行之間進行格式化。常用的一個命令“gg=G”實際上是先執行了“gg”使游標跳轉到第一行,然後才是執行了“=G”。如果不寫行號,就是到最後一行,於是“gg=G”就可以使當前文件的所有內容格式化了。格式化的tab長度是在.vimrc中設置的。
同樣地,對於“dnG”,是對當前行到第n行進行剪切,“ynG”是對當前行到第n行進行複製。
另外,n可以小於當前行數,如當前行如果是70行,執行“y35G”,就是把從70行到第35行的內容進行複製,其實就相當於複製35行到70行的東西。
有了這個,在以下場合非常方便:
假設要複製從25行到78行的內容,這時候可以直接使用“25Gy78G”,而不用去計算一共有多少行,然後執行ndd了。
對於“d”和“y”,還可以這樣:
“d^”、“d$”,從游標位置剪切到行首/行尾,“dw”,剪切游標當前位置到單詞的第一個字母,等等。
總之,就是把“=”、“d”、“y”與游標移動的操作結合起來使用,從而產生想要的效果。