vi是unix操作系統提供的一個全屏幕文本編輯器,是程序員編輯源代碼的一個重要工具。熟練掌握vi命令及其使用技巧往往能起到事半功倍的作用,大大提高編程工作的效率。在應掌握如i,a,o,0,m,x,u,dd,yy,dw,cw,s,.,/,Ctrl-F,Ctrl-B,Ctrl-G,w,q等基本命令外,下面介紹一些實際工作中所常用的命令技巧。
1.將多個文件調入緩沖使用命令:vi flname1 flname2… flnameN編輯下一文件用:n;回到首文件:rew;查看當前編輯緩沖文件狀態:args。
2.修改包含某一字符串的文件可與grep命令結合使用,如欲編輯當前目錄下含有abc字串的所有C源程序:vi`grep -1 abc *.c`
3.編輯在緩存中的兩個文件快速切換命令: :e# 或 Ctrl-^ 使用Ctrl-^ 命令更便捷,但如終端類型不正確該功能將無效。
4.將一個文件的部分內容讀入另一文件中,有以下兩種操作方式:
(1)將欲讀入的內容用w命令寫入一臨時文件,再用r命令讀入。該方法笨拙,臨時文件需清理。
(2)將欲讀入的內容寫入一臨時緩存器後再切換到目標文件,將光標移至需讀入內容處,從緩存器中提出。
寫入緩存器a命令:起始行mk 結束行″ay'k
從緩存器a中提出:″ap
該方法操作方便快捷,不會產生垃圾文件
5.放棄一修改過的文件,重新編輯。
(1)使用命令 :q!強行退出後再vi flname重新進入。
(2)使用命令 :e!強行重編輯更便捷。
6.定位文件尾用G比:更快捷,段落定位用(和)鍵,括號匹配定位用%,定位行首0,定位行尾,兩行連接J。
7.行左移〈〈,行右移〉〉,該命令用於調整源碼縮進格式簡便快速。
8.大小寫字母自動切換命令:shilft+~,屏幕刷新Ctrl-1。
9.當編輯的移動鍵失效時可用:map命令,但如終端類型不正確該命令將無效。
10.替換命令的特殊處理:文件行首用^標識,行尾用$標識。
如:1,s/^/abc/g 表示文件行首加入abc字串
1,.s//abc/g 表示文件首行至光標所在行行尾加入abc字串
11.在vi命令狀態直接讀入一外部命令執行結果:
!!+外部命令
如:
!!date
直接讀入一系統日期
12.在vi中也可輸入非ASCII碼,如欲輸入打印機的換頁控制碼^L(碼值為12),其輸入方法是先輸Ctrl-v再輸Ctrl-1即可,其中Ctrl-v是靜默值。
13.顯示vi文本中的隱含字符:set list 取消顯示:set nolist。
14.臨時退出至shell狀態命令:sh,退出shell後將回到原編輯狀態,在同一緩存中編輯另一文件:e flname。
vi編輯器命令很豐富,但沒必要各個都需掌握,只要掌握以上提及的基本命令與技巧,即可自如高 效的編輯文件了。