vim普通模式的強大,很大程度上源於它可以把操作符與動作命令結合在一起。
程式設計師與畫家
程式設計師的程式設計過程和畫家的畫畫過程模擬,程式設計師往往只花一小部分時間編寫**,而絕大多數時間是在思考、閱讀,以及在**中穿梭瀏覽。而且即使是要修改內容也可以通過普通模式下的各種工具完成修改工作。
停頓是自然斷點
u
命令可以撤銷最近一次修改,而這個修改可以包括普通模式、可視模式以及命令列模式中促發的命令,當命令觸發了插入模式時,這次修改也將包括在插入模式中輸入的文字內容。這種相對廣泛的修改的定義,讓我們能夠自己控制一次撤銷操作的細粒度,在vim中從插入模式開始到返回普通模式為止,在此期間的修改內容被視為一次修改,因此對撤銷操作細粒度的控制在於返回普通模式的鍵的使用。那麼,多久進行一次修改內容儲存構成乙個撤銷塊成為乙個關鍵問題。通常,在編寫過程中的每次停頓便是乙個最好的自然斷點,例如每寫完一句話,在思考下一句時就可以離開插入模式,當需要繼續寫的時候
a
命令返回插入模式繼續編寫。
當你想控制更細粒度的撤銷操作時,可以考慮使用o
完成鍵完成的另起一行的工作。
vimgolf
在vim中完成一件事可以有很多種方式,用於評估這些方式的效率的指標是方式所需按鍵次數最少(vimgolf)。而最有效率的事件完成方式,很大程度上便於我們構造可重複的修改,可以充分利用.
命令提高效率。
使用示例
例如,想要刪除行尾的乙個單詞時,首先可以想到反向刪除,使用db
命令刪除從游標開始到單詞開頭的內容,但是這會留下單詞的開頭字母還需要使用x
命令刪除它。正向刪除首先使用b
命令將游標移動到單詞開頭,然後使用dw
命令刪除整個單詞。刪除整個單詞,使用更為精確的aw
命令尋找文字物件,當游標停留在對應單詞上時,使用daw
命令刪除整個單詞。
這三種方式都可以完成刪除乙個單詞的工作,但是存在重複操作情況是,使用.
命令它們效率的差別就會顯現,dbx
方式僅會重複x
命令,bdw
方式僅會重複dw
命令且無法移動游標,daw
方式則不需要考慮游標位置使用.
命令可以完全重複刪除整個單詞的工作。
指定執行次數
大多數普通模式命令可以在執行時指定次數,可以利用這一功能來做簡單的算術運算,使用ctrl+a/x
命令分別對數字執行加減操作。
什麼情況下使用次數
使用次數執行命令的特點在於它能夠保留乙個連貫的撤銷歷史記錄,乙個u
命令就可以撤銷整個修改。但是這也帶來乙個問題,它無法提供更加細粒度的操作,降低了修改的靈活性,重複命令.
可以提高操作的靈活性。所以在不需要重複操作的使用場景下次數效率更高。
使用示例
例如,當需要刪除乙個文字行中的多個單詞時,這種場景下可以為dw
命令加上次數字首3dw
完成從游標開始連續刪除3個單詞;也可以使用dw
命令觸發單詞刪除操作之後使用3次.
命令重複刪除操作。前面已經提到,這兩種方式的區別在於後者可以提供更加細粒度的操作,當出現次數判斷錯誤時,撤銷次數執行會回到最原始的狀態,使用重複操作可以提供更靈活的撤銷重複操作。
當需要修改乙個文字行中的多個單詞時,這種情況下單詞內容不同導致使用重複操作的作用很小,而次數操作的優勢就得以顯現,例如文字行one two three
可以使用3cw
+four three two
一次操作完成內容修改。
vim的詞彙
操作符和動作命令的結合形成了一種語法,操作符確定執行的操作,動作命令確定操作符作用的範圍形成乙個完整的操作。例如d
可以是刪除乙個字元的dl
命令、可以是刪除乙個完整單詞的daw
命令、也可以是刪除一整個段落的dap
命令。一些常見的操作符如下表所示。
命令操作
c
修改
d
刪除
y
複製
g~
反轉大小寫
gu
轉換為小寫
gu
轉換為大寫
>
增加縮排
<
減少縮排
=
自動縮排
!
過濾跨越的行
vim的語法只有一條額外的規則,即當乙個操作符命令被連續呼叫兩次是,表示該操作的作用範圍是當前行。例如dd
是刪除當前行,yy
是複製當前行,>>
縮排當前行等。
vim實用技巧
以前習慣於eclipse,sourceinsight,vim用的不是很熟悉,在現在的公司中,vim是一種必備的技巧,慢慢,從難受到得心應手,vim還是比較好用的,下面記錄一點實用的技巧 1 vim ctags cscope是乙個強大的比擬於sourceinsight的字元介面的工具 2 ctrl 跳...
vim實用技巧
正在看vim實用技巧這本書,也在做一些筆記,直到看到了這個部落格.下面是全文 命令可以重複上次的修改 vim把進入插入模式到退出形成一次修改,i,在插入模式中移動游標會重置修改狀態 g增加從當前行到文件末尾的縮排層級 a在當前行的結尾新增內容 等價 a 類似還有 查詢 如果在插入模式使用了上下左右游...
vim 實用技巧
技巧記錄 序號 功能內容 1.vimrc配置 2主題vim檔案 在vim的normal模式,echo vimruntime 可以獲取vim執行目錄。進入vim的執行目錄,檢視color目錄下以 vim 為結尾的檔案 在.vimrc配置檔案加入 colorscheme 顏色主題名字 vim主題drac...