vim編輯器

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

基本模式:
        1.命令模式 2.插入模式 3.擴展模式
  
#vim filename
    +#  打開文件后 讓光標處于#行的行首
    +/PATTERN    打開文件并使光標處于第一個匹配到的行的行首
    +  file    直接打開file,光標在最后一行
    -b file    二進制方式打開文件
    -m file    只讀打開文件

    -d file1 file2…   比較多個文件

 鎖定和解鎖:CTRL+s,Ctrl+q

===基本操作:

 1.模式轉換:
    命令模式(默認)==> 插入模式
  
     i:     insert 光標所在處輸入
     I:    光標所在行行首輸入
    a:    append 光標所在處后方輸入
    A:    光標所在行行尾輸入
    o:    光標所在下方新建一行
    O:    光標所在上方新建一行

  插入模式–>命令模式:
    ESC

  插入模式–>擴展模式:
    :

  擴展模式–>命令模式:
    ESC
 
 2.保存退出文件:
    命令模式下
        ZZ:保存并退出 
        ZQ:不保存退出
  
   擴展模式下:
        :q  退出
        :q! 強制退出  不會保存編輯操作
        :wq 保存并推出
        :x  保存并退出
            :w  /PATH 另存為
 
 
 3.光標跳轉:    命令模式下:
  字符間跳轉:
        h左  j下  k上  l右  #前可加數字# 表示跳轉#個單位

  單詞間跳轉:
        w 下一個單詞 詞首
        b 前一個單詞 詞首   若不在 當前單詞詞首 則先跳轉到當前單詞詞首
        e 下一個單詞 詞尾   同上
        #前可加數字# 表示跳轉#個單詞

  行首行尾跳轉:
        ^ 跳轉至行首 第一個 非空白字符處
        0 跳轉至行首 TAB除外
        $ 跳轉至行尾

  行間跳轉:
        #G 跳轉至#號行
        1G|gg    第一行
        G   跳轉至最后一行
   
  句間跳轉: 支持加數字
        )
        (
  段間跳轉: 支持加數字
        }
        {
  
  當前頁跳轉:
        H:頁首
        M:頁中間行
        L:頁底 
   
 4.翻屏:
        ctrl+f 向文件 尾部 翻一屏
        ctrl+b 向文件 首部 翻一屏
  
        ctrl+d 尾部 半屏
        ctrl+u 首部 半屏
  
        enter:按行向后翻
  
  

=== vim命令模式下:

 1.字符編輯
        x 刪除 光標所在處 字符       向后
        #x  刪除 光標所在處 向后#個字符
 
        xp 交換 光標所在處 與其后一個字符 的位置
  
        ~ 轉換大小寫

 2.替換
        r  CHAR  替換光標所在處字符
        R    切換成REPLACE模式
 
 3.刪除(delete)
        d 刪除 可結合光標跳轉字符
        dd 刪除 光標所在行       #dd 加數字 刪除共#行
        d$:  刪除 光標所在處到 行尾的字符
        d^:  刪除 光標所在處到 行首的字符
        d0:  刪除 光標所在處到 "行首"的字符
        D:從當前光標位置一直刪除到行尾,留空行,等同于d$
   
        dG 刪除 當前光標位置到 尾行
         dg 刪除 當前光標位置到 首行
     
        dw  |
        de  | 結合 跳轉字符 選定區域
        db  |
   刪除的內容保留在緩沖區 可粘貼最后一個

 4.復制(yank)
        y 復制,
        Y 復制整行
        yy 復制整行
        y$
        y^
        y0

  類似d刪;   
        ye  |
        yb  | 結合 跳轉字符 選定區域
        yw  |

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

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

= 100izhou [ESC] 粘貼 zhou 100次
 
 <start position>   CMD  <end position>
 Command: y 復制、d 刪除、gU 變大寫、gu 變小寫
 例如 0y$ 命令意味著: 拷貝全文
  ye 從當前位置拷貝到本單詞的最后一個字符
  
=  26個命名寄存器和 1個無命名寄存器,
 存放不同的 剪貼版內容,可以不同會話間共享。
 用a,b,…,z表示,用“寄存器表示,放在數字和命令之間
  如:3"tyy 表示復制3行到t寄存器中
  "tp  表示將t寄存器內容粘貼
 

=== 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 全行替換    因為默認只匹配每行的第一個
 

:!command 不退出vi  執行某個命令
:r!command 讀cmd的stdout到當前位置

==

 = 以二進制方式打開文件
   vim –b binaryfile
  擴展命令模式下,利用xxd命令轉換為可讀的十六進制
        :%!xxd ? 編輯二進制文件
  擴展命令模式下,利用xxd命令轉換回二進制
        :%!xxd -r
 
 
= 同時打開多個文件: 
  vim FILE1 FILE2 FILE3 …
        :next 下一個
        :prev 前一個
        :first 第一個
        :last 最后一個
        :wall 保存所有
        :qall 退出所有
        :wqall 保存所有
   
 = 多文件分割 vim  -o|-O   FILE1 FILE2 …
        -o: 水平分割
        -O: 垂直分割
    在窗口間切換:Ctrl+w, 方向鍵
 
 = 單文件窗口分割:
        Ctrl+w,s: split, 水平分割
        Ctrl+w,v: vertical, 垂直分割
        ctrl+w,q:取消相鄰窗口
        ctrl+w,o: 取消全部窗口
       :wqall 退出
   
***配置vim工作特性:

 配置文件:永久有效
    全局:/etc/vimrc
    個人:~/.vimrc

 (1) 行號
    顯示:set number        簡寫為set nu
    取消顯示:set nonumber  簡寫為set nonu
  
 (2) 括號成對匹配
    匹配:set showmatch, 簡寫為set sm
    取消:set nosm

 (3) 自動縮進
    啟用:set ai
    禁用:set noai
  
 (4) 高亮搜索
    啟用:set hlsearch
    禁用:set nohlsearch

 (5) 語法高亮
    啟用:syntax on
    禁用:syntax off
  
 (6) 忽略字符的大小寫
    啟用:set ic
    不忽略:set noic
  
 (7) 文件格式
    啟用:set fileformat=unix
    不忽略:set fileformat=dos
  
 (8) 設置文本寬度
    :set textwidth=65 (vim only)  從左起
    :set wrapmargin=15  從右起
  
    :set all 查看可用設置  :set
    :help 幫助文檔
 
  
  
 例   :%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,此時屏幕上原來的匹配已取消.

原創文章,作者:Jasper,如若轉載,請注明出處:http://www.www58058.com/31903

(0)
JasperJasper
上一篇 2016-08-10 10:22
下一篇 2016-08-10 10:27

相關推薦

  • 網絡基礎知識札記

    Linux網絡屬性管理(1)     Bell(AT&T), PARC(Xerox)        以太網     計算機網絡:共享底層通信信道         CSMA/CD算法      &nbsp…

    Linux干貨 2016-09-06
  • N25_第一周_yecho

    ???

    Linux干貨 2016-12-01
  • 高級文件系統管理之磁盤配額及RAID的運用

    本章內容 設定文件系統配額 設定和管理軟RAID設備 一,概述 配置配額系統: 綜述 在內核中執行 以文件系統為單位啟用 磁盤配額最小單位是以文件系統為單位啟用,就是一個掛載點,而不能以目錄為單位 對不同組或者用戶的策略不同 根據塊或者節點進行限制 執行軟限制(soft limit) 硬限制(hard limit) 初始化 分區掛載選項:usrquota、g…

    Linux干貨 2016-09-07
  • CentOS多網卡單個ip和單個網卡多個ip的設置

    一、單個網卡設置一個IP地址     1.初始狀態已添加一個網卡eth0,并設置的均為自動獲取IP地址,如下圖所示:網卡為eth0,ip地址為10.1.249.36;為了后續實驗的順利進行,我們把NetworkManager服務關閉     chkconfig NetworkMa…

    Linux干貨 2016-09-06
  • Linux基礎之—基礎權限和特殊權限以及FACL權限管理

    Linux是多用戶多任務的操作系統,了解掌握Linux的權限分配機制,也是管理Linux系統安全的基礎之一。 文件目錄的權限格式如下:   1.其中權限位可以看對象到是一個9個占位符,其實分為三位一組: (1) 第一組:對應的是文件或目錄的所有者屬主權限。owner (2) 第二組:對應的是文件或目錄的所屬組權限。group (3) 第三組:對應的…

    Linux干貨 2016-08-07
欧美性久久久久