vi 編輯器命令大全

Vi的3種運行模式 編輯器

  1. 普通(normal)模式,又稱命令模式
  2. 插入(insert)模式
  3. 命令行(cmdline)模式

進入Vi後首先進入的是普通模式,Vi等待編輯命令輸入,也就是此時輸入的字母都將被做爲命令來解釋。
在普通模式下,輸入插入命令i、附加命令a、打開命令o等進入插入模式,在插入模式下用戶輸入的任何字符都被Vi看成文件內容保存起來,並顯示在屏幕。在文本輸入過程當中,按Esc鍵返回普通模式。
在普通模式下,執行Ex命令使用:,查找使用?和/,調用Shell命令使用!。末行命令執行完後,Vi自動返回普通模式。
1、普通模式下的操做 ide

進入插入模式命令行

i 光標前插入   I 光標行首插入
a 光標後插入   A 光標行尾插入
o 光標所在行下插入一行,行首插入
O 光標所在行上插入一行,行首插入orm

光標定位字符串

  1. G 移至最後一行行首
  2. nG 移至第n行行首
  3. n+ 下移n行,行首
  4. n- 上移n行,行首
  5. n$ 下移n行(1表示本行),行尾
  6. 0 所在行行首
  7. $ 所在行行尾
  8. ^ 所在行首字母
  9. h,j,k,l 左移,下移,上移,右移
  10. H 當前屏幕首行行首
  11. M 屏幕顯示文件的中間行行首
  12. L 當前屏幕最底行行首

替換和刪除cmd

  1. rc 用c替換光標所指向的字符
  2. nrc 用c替換光標所指向的前n個字符
  3. x 刪除光標處的字符
  4. nx 刪除光標所在位置開始向右的n個字符
  5. dw 若光標處在某個詞的中間,則從光標所在的位置開始刪至詞尾(連同詞後的若干空格,製表符)
  6. ndw 刪除光標所在的單詞開始的n個單詞(第一個單詞從光標所處的字符開始刪)
  7. db 光標所在單詞的前一個字符至單詞的首字符
  8. ndb 刪除光標所在的單詞前n哥單詞
  9. dd 刪除光標所在的整行
  10. ndd 刪除當前行及其後n-1行
  11. dG 刪除當前行到最後一行
  12. d1G 刪除當前行到第一行
  13. d$ 刪除當前字符到行尾
  14. d0 刪除前一個字符到行首
  15. d,左箭頭 刪除光標處的前一個字符
  16. d,右箭頭 刪除光標處的字符
  17. d,上箭頭 刪除當前行和上一行
  18. d,下箭頭 刪除當前行和下一行

複製和粘貼it

  1. yy 當前行復制到緩衝區
  2. nyy 當前開始的n行復制到緩衝區
  3. yG 光標所在行至最後一行復制到緩衝區
  4. y1G 光標所在行至第一行復制到緩衝區
  5. y$ 光標所在位置到行尾複製到緩衝區
  6. y0 光標所在位置的前一個字符到行首複製到緩衝區
  7. p 將緩衝區的內容寫到光標所在的位置

搜索字符串class

  1. /str 往右移動到有str的地方
  2. ?str 往左移動到有str的地方
  3. n 向相同的方向移動
  4. N 向相反的方向移動

撤銷和重複file

  1. U 取消前一次的誤操做或不合適的操做對文件形成的影響
  2. . 再執行一次前面剛完成的某個命令

退出Vi搜索

  1. ZZ 存盤退出
  2. ZQ 不保存退出
2、命令行模式下的操做

跳行

  1. :n 跳轉到第n行

字符串搜索和替換

  1. :/str/ 從當前往右移動到有str的地方
  2. :?str? 從當前往左移動到有str的地方
  3. :/str/w file 將包含有str的行寫到文件file中
  4. :/str1/,/str2/w file 將從str1開始到str2結束的內容寫入到file文件中
  5. :s/str1/str2/ 將找到的第一個str1替換爲str2
  6. :s/str2/str2/g 將當前行找到的全部str1替換爲str2
  7. :n1,n2s/str1/str2/g 將從n1行至n2行找到的全部的str1替換爲str2
  8. :1,.s/str1/str2/g 將從第1行至當前行的全部str1替換爲str2
  9. :.,$s/str1/str2/g 將從當前行至最後一行的全部str1替換爲str2
  10. :%s/str1/str2/g             全部的都替換
  11. :1,$s/str1/str2/gc 將從第1行至最後一行的全部str1替換爲str2,並在替換前詢問
  12. :12,23s/^/#/      12~23行前加#
  13. :%s= *$==         全部行末多餘空格刪除
  14. :g/^\s*$/d        將全部不包含字符(空格也不包含)的空行刪除

文本的複製、移動和刪除

  1. :n1,n2 co n3 將n1行至n2行復制到n3後面
  2. :n1,n2 m n3 將n1行至n2行移動到n3後面
  3. :d 刪除當前行
  4. :nd 刪除第n行
  5. :n1,n2 d 刪除n1行至n2行
  6. :.,$d 刪除當前行至最後一行
  7. :/str1/,/str2/d 刪除從str1開始至str2爲止的內容

文件相關命令

  1. :w 當前編輯的內容存盤
  2. :w file 當前編輯的內容寫到file中
  3. :n1,n2w file 從n1行至n2行寫到file中
  4. :nw file 第n行寫到文件file中
  5. :1,.w file 從第1行至當前行寫到file中
  6. :.,$w file 從當前行至最後一行寫到file中
  7. :r file 打開另外一個文件file
  8. :e file 新建file文件
  9. :f file 當前文件更名爲file

執行Shell命令

  1. :!Cmd 運行Shell命令Cmd
  2. :n1,n2 w !Cmd 將n1行至n2行作爲Cmd命令的輸入,若不指定行則整個文件作爲Cmd的輸入
  3. :r !Cmd 將命令運行的結果寫入光標所在行的下一行(命令不能是別名)

設置Vi環境

  1. :set autoindent 自動縮進
  2. :set noautoindent 取消自動縮進
  3. :set number 在編輯文件時顯示行號
  4. :set nonumber 不顯示行號
  5. :set ruler 在屏幕底部顯示光標所在的行,列位置
  6. :set noruler 不顯示行,列位置
  7. :set tabstop=value 設置顯示製表符的空格字符個數
  8. :set wrapmargin=value 設置顯示器的右頁邊。當輸入進入所設置的頁邊時,編輯器自動回車換行
  9. :set 顯示設置的全部選項
  10. :set all 顯示所欲能夠設置的選項

退出Vi

  1. :q 退出
  2. :qw 保存並退出
  3. :q! 不保存退出
相關文章
相關標籤/搜索