第二章普通模式
技巧6.結識 . 正規化
回顧前面3個.命令編輯任務
在技巧2中,我們想在一系列行的結尾新增分號.我們先用a;
修改了第一行,做完這步準備之後,就可以使用.命令對後續行重複此修改,我們使用了j命令在行間移動,要完成剩餘的修改,只需要簡單地按足夠多次j.就可以了.
在技巧3中,我們想為每乙個+號的前後各新增乙個空格,我們先用f+
命令跳到目標字元上,然後用s命令把乙個字元替換成3個,做完這步操作後,我們就可以按若干下;.完成此任務.
在技巧5中,我們想把每次出現單詞」content」的地方都替換成」copy」,我們使用*命令來查詢目標單詞,然後用cw
命令修改第一處地方.做完這步準備後,就可以用n
鍵跳到下一匹配項,然後用.鍵做相同的修改.要完成這項任務,只需要簡單地按足夠多次n.
就行了.
理想模式:用一鍵移動,另一鍵執行.
技巧7 停頓時請移開畫筆
就像畫家只花一小部分時間塗色一樣,程式設計師也只花一小部分時間編寫**,絕大多數時間用來思考,閱讀,以及在**中穿梭瀏覽.當確實需要修改的時候,誰說一定要切換到插入模式才行?我們可以重新調整已有**的格式,複製它們,移動其位置,或是刪除它們.在普通模式中,我們有眾多的工具可以利用.
技巧8 把撤銷單元切成塊
輸入一些詞後使用撤銷命令,可能會撤銷最後輸入的詞或字元,然而在vim中,我們可以自己控制撤銷的粒度.
u鍵觸發撤銷命令,會撤銷最新的修改.一次修改可以是改變文件內文字的任意操作,其中包括在普通模式,可視模式以及命令列模式中所觸發的命令,而且一次修改也包括了在插入模式中輸入(或刪除)的文字,因為我們也可以說,i
是一次修改.
停頓的時候,就該退出插入模式了,當準備好繼續寫的時候,按a就可以重新回到原來的地方繼續寫作.
如果我認為我走錯了方向,我會切換到普通模式,然後按u撤銷,每次做撤銷時,文字都按我最初書寫時的思路,被切分成條理清晰的塊.
在插入模式中移動游標會重置修改狀態
撤銷命令會回退從進入插入模式到退出此模式間輸入(或刪除)的全部字元.
但是如果在插入模式中使用了up,down,left,right這些游標鍵,會產生乙個新的撤銷塊.
你可以把這個想象為先切換回普通模式,然後用h,j,k,l命令對游標進行移動,唯一的區別是我們並沒有退出插入模式,這會對 . 命令操作產生影響.
技巧9 構造可重複的修改
在vim中,要完成一件事,總有不止一種方式,在評估那種方式最好時,最顯而易見的指標是效率,那種手段需要的按鍵次數最少.然而,在出現平局的時候改如何選擇獲勝者?
在下例中,假設游標位於行尾處的字元」h」上,而我們想要刪除單詞」nigh」:
the end
is nigh
反向刪除
db the end
is h
x the end
is
正向刪除
b the end
is nigh
dw the end
is
刪除整個單詞
daw the end
is
你可以把daw命令解讀成delete a word,這樣比較容易記憶.
只有最後乙個方案,使用.的時候,可以刪除乙個單詞.可以重複上次刪除單詞的操作.
技巧10.用次數做簡單的算數運算
大多數普通模式命令可以在執行時指定次數,我們可以利用這個功能來做簡單的算數運算.
很多普通模式命令都可以帶乙個次數字首,這樣vim就會嘗試把該命令執行指定的次數,而不是只執行一次.
和
命令分別對數字執行加和減操作.在不帶次數執行時,它們會逐個加減,如果帶乙個次數字首,那麼就可以用它們加減任意次數.例如,如果我把游標移動到字元5上,執行
10
就會把它變成15.
但是如果游標不在數字上會發生什麼?文件中說,命令會」把當前游標之上或之後的數值加上[count]」,因此,如果游標不在數字上,那麼
命令將在當前行正向查詢乙個數字,如果找到了,它就徑直跳到那裡
舉例:
.blog, .news
.blog
.news
我們要複製最後一行並且對其做兩個小改動,即用」news」替換單詞」blog」,以及把」0px」改為」-180px」
我們可以執行yyp來複製此行,然後用cw來修改第乙個單詞.
一種做法是用f0跳到此數字,然後進入插入模式手動修改它的值.
不過執行180要快的多.由於我們的游標不在要操作的數字上,所以該命令會正向跳到所要找到的第乙個數字上 ,從而省去了手動移游標的步驟.
yyp
cw.news
180
vim中把以0開頭的數字解釋為8進製,而不是10進製.007+001=010
把set nrformats=
加入到你的vimrc裡面,會讓vim把所有的數字當成十進位制,不管他們是不是以0開頭.
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...