VIM 奇技淫巧
常用技巧
1. 如果想不退出vi而查看UNIX系統的有關信息,輸入“:shell ”即可進入vi以前的shell環境,“exit”退回到vi編輯狀態。
2. shift+ZZ 保存后自動退 和 :wq 是一樣的
3. 直接運行命令,不退出VI :! 命令? Demo::! ls
4. 將其他文件內容導入當前編輯文件中,:r 文件名 Demo::r /etc/hosts
?? 結合第3條可以這樣插入日期? Demo::r !date
5. 像UltraEdit一樣的列選功能,在VI也能用,按Ctrl + V,用向下或向上鍵選擇行,再按Shift+I,然后輸入要輸入的符號,最后ESC。(Gvim下用Ctrl+Q,不然變成黏貼了)
?? 我們常用這個方式加注釋,還有更簡單的方法 :起始行,終止行s/要替換字符/替換為新字符/g Demo::1,20s/^/#/g
6. 重復上次操作,有的時候我們經常做重復操作,先在第一行上操作例如刪除第一個字母,然后到你要重復的行,然后 . (就是有>號的鍵)
7. 如果想把一個字母進行大小寫變換,可以在字母上按SHIFT+~.?
8. :global可以簡寫為:g :g! :vg
??? :g/^/m 0 #倒序文件行
??? :g/^$/d #vi中刪除空行
??? :g/^/+1 d #刪除偶數行 也可以用normal命令 :%norm jdd
??? :g/^/d|m. #刪除奇數行
?
屏幕翻滾類命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部(這里要敲回車)
插入文本類命令
i:在光標前
I:在當前行首
a:光標后
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字符
R:替換當前字符及其后的字符,直至按ESC鍵
s:從當前光標位置處開始,以輸入的文本替代指定數目的字符
S:刪除指定數目的行,并以所輸入文本代替之
ncw或nCW:修改指定數目的字
nCC:修改指定數目的行
刪除命令
ndw或ndW:刪除光標處開始及其后的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當前行及其后n-1行
x或X:刪除一個字符,x刪除光標后的,而X刪除光標前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令
/pattern:從光標開始處向文件尾搜索pattern
?pattern:從光標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g 將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
:%s/p1/p2/g 將在全文中把所有p1無用p2替代
如果你是在寫程序,你可能只想替換那些出現在注釋中的"four",代 碼中的留下。這可有點為難,"c"標志可以讓每個目標被替換之前詢問你的意見:
Demo:%s/\<four\>/4/gc?
文本相關操作
?
J表示,其功能是把光標所在行與下面一行合并為一行
nJ表示,其功能是把光標所在行與下面n行合并為一行
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d:將n1行到n2行之間的內容刪除
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
