vim編輯器的使用

vim編輯器    模式化編輯器           #vimtutor    vim自帶練習教程 !!!

基本模式:
  1.命令模式 2.輸入模式 3.末行模式

    輸入模式-->命令模式:
       ESC


    命令模式-->末行模式:
       :


    末行模式-->命令模式:
       ESC



基本操作:

vim filename

 +#  打開文件後 讓光標處於#行的行首
 +/PATTERN    打開文件並使光標處於第一個匹配到的行的行首
 
 1.模式轉換:
     默認命令模式-->輸入模式
  i   insert 光標所在處輸入
  a   append 光標所在處後方輸入
  O   光標所在 上方新建一行
  o   光標所在 下方新建一行
  I   光標所在行 行首輸入
  A   光標所在行 行尾輸入
  

 2.關閉文件:
  ZZ:保存並退出  命令模式下
  
  :q   退出
  :q!  強制退出  不會保存編輯操作
  :wq  保存並推出
  :x   保存並退出
  
  :w  /PATH 另存爲 
 
 3.光標跳轉:
  字符間跳轉:
   h左  j下  k上  l右  #前可加數字# 表示跳轉#個單位字符
  單詞間跳轉:
   w 下一個單詞 詞首
   b 前一個單詞 詞首   若不在 當前單詞詞首 則先跳轉到當前單詞詞首
   e 下一個單詞 詞尾   同上
        #前可加數字# 表示跳轉#個單詞
  行首行尾跳轉:
   ^ 跳轉至行首 第一個 非空白字符處
   0 跳轉至行首 TAB除外
   $ 跳轉至行尾
  行間跳轉:
   #G 跳轉至#號行
   1G|gg    第一行
   G   跳轉至最後一行
   
  句間跳轉: 支持加數字
   )
   (
  段間跳轉: 支持加數字
   }
   {
   
   
 4.翻屏:
  ctrl+f 向文件 尾部 翻一屏
  ctrl+b 向文件 首部 翻一屏
  
  ctrl+d 尾部 半屏
  ctrl+u 首部 半屏
  
  enter:按行向後翻




 
*** vim命令模式下:


 1.字符編輯符
  x 刪除 光標所在處 字符       向後
  #x  刪除 光標所在處 向後#個字符
 
  xp 交換 光標所在處 與其後一個字符 的位置
 
 2.替換
  r+CHAR  替換光標所在處字符
 
 3.刪除(delete)
  d 刪除 可結合光標跳轉字符
  dd 刪除 光標所在行       #dd 加數字 刪除共#行
   d$:  刪除 光標所在處到 行尾的字符
   d^:  刪除 光標所在處到 行首的字符
   d0:  刪除 光標所在處到 "行首"的字符
     
   dw  |
   de  | 結合 跳轉字符 選定區域
   db  |
   刪除的內容保留在緩衝區 可粘貼最後一個



 4.複製(yank)
  y 複製,
  yy 複製整行
   y$
   y^
   y0
  類似d刪;   
   ye  |
   yb  | 結合 跳轉字符 選定區域
   yw  |



 5.粘貼(p,put,paste)
  小寫p 粘貼緩衝區(包括d最後刪除的行) 中的內容如果爲 整行粘至 光標所在行 下一行,
    否則粘貼到 光標所在處 後方
  大寫P   粘貼緩衝區(包括d最後刪除的行) 中的內容如果爲 整行粘至 光標所在行 上一行,
    否則粘貼到 光標所在處 前方


 6.改變(change)   編輯模式-->輸入模式
  c   對 選定區域 執行操作後,進入 輸入模式
  cc  刪除 整行並進入 輸入模式
   c$
   c^
   c0
   cb   |
   ce   | 結合 跳轉字符 選定區域
   cw   |
  
 
 7.可視化模式(visualization)   類似 鼠標選定 效果; 選定區域後可執行操作
  v 按 字符  選定
  V 按 行   選定
  
  結合編輯命令 d,p,c 執行相應操作
 
 8.撤銷(undo)
  u 撤銷上一步操作    可連續執行   默認50個
  #u 撤銷此前 #次操作  結合數字    3u:撤銷最近3次操作
  
 9.恢復(recovery);    撤銷 之前的撤銷
  Ctrl+r
 
 10.重複執行上一步操作   點號
  "."
 




*** vim末行模式:       內建的命令行接口;
  ":" 進入
 1.定位
  #[,#]
   . 當前行
   % 全文
   # 特定第#行          :5     第5行
   #,# 指定範圍行         :3,7   3到7行
   
   #,+#   指定起始行 及偏移量       
      :4,+6   4到10行   :.,$  當前行到最後一行
   /pat/: 從光標所在處起始 向文件尾部第一個被匹配到的行
    /pat/,$  從光標起始 向文件首部
   /pat1/,/pat2/  從光標處起始,第一次pat1匹配到的行 到 第一次pat2匹配到的行
   
     選定區域 可結合編輯命令使用
      c 修改
      d 刪除
      y 複製
     w /PATH  另存爲
     r /PATH  將指定文件中的文本 讀取插入指定位置
 
 
 2.查找
  /str 從光標處 向文件尾部 查找匹配的字符串
  ?str 從光標處 向文件首部 查找匹配的字符串
   n: 下一個,與命令方向相同
   N: 上一個,與命令方向相反
   
   
 3.查找並替換
  :s/要查找內容/替換爲的內容/修飾符
   "要查找的內容": 可使用正則標表達式
   "要替換的內容": 不能使用正則表達式 可引用
    "要查找的內容"使用了 分組,在"要替換的內容"中可後向引用
    s/pat/&str/g 未使用分組,可直接引用全部內容  &
  修飾符:
   i 忽略大小寫
   g 全行替換    因爲默認只匹配每行的第一個
   
   
   
   
   
 例   :%s/zjj/Zjj/ig


    全文中zjj  z改爲大寫,
    查找時不區分大小寫
    一行中匹配的多個全部替換
    


 例   分隔符///可替換  @@@ ###


   :1,40s#/etc/passed#/etc/shadow#i
    1到40行內 /etc/passwd  替換爲 /etc/shadow
    查找時不區分大小寫
    每行只替換第一個被匹配到的
  


 例   %s@\<t\([[:alpha:]]\+\k)\>@T\1@g


    全文中 小寫t開頭的單詞  全部換位大寫T



*** 當查找完後,想去除 匹配的 高亮,與之對應有兩種常用的方法:


        1. 命令模式下,匹配一個更長或內容上沒有的內容,使之覆蓋原有匹配.


        2.  末行模式下,輸入noh,此時屏幕上原來的匹配已取消.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章