vim文本處理工具

vim編輯器

    1、文本的編輯器的種類:

        行編輯器:所謂的行編輯器是指一行一行來編輯處理的工具,如sed

        全屏編輯器:編輯空間占據整個屏幕,如nano,vi。

        vim:是vi的增強版,vim是模式化的編輯

    2、vim在工作中的三種模式:編輯模式(命令模式)、輸入模式、末行模式

        a、編輯模式:也叫命令模式,鍵盤操作常被理解為編輯命令

        b、輸入模式:在文本文件當中進行輸入內容

        c、末行模式:vim內置的命令行接口,執行vim的內置命令

    

    3、vim的使用

        打開文件

        #vim [option]…[file]…

        +#:打開文件后,直接讓光標處于第#行

        +/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首

        vim + file:直接打開file,光標在最后一行

        vim –b file: 二進制方式打開文件

        vim –d file1 file2… :比較多個文件(比較兩個文件的行不同的地方)

        vim -m file:只讀打開文件(不能進行修改,只能看)

        如果該文件存在,文件被打開并顯示內容如果該文件不存在,當編輯后第一次存盤時創建它


    4、模式轉換

        a、ESC鍵:可以從輸入模式轉換到編輯模式

        b、從編輯模式–>輸入模式,可使用下面的命令

            i: insert, 在光標所在處輸入
            I:在當前光標所在行的行首輸入
            a: append, 在光標所在處后面輸入
            A:在當前光標所在行的行尾輸入

            o: 在當前光標所在行的下方打開一個新行
            O:在當前光標所在行的上方打開一個新行

        c、編輯模式–>末行模式:直接輸入冒號即可在窗口的左下方顯示冒號

        d、末行模式–>編輯模式:敲擊ESC鍵

        e、輸入–>編輯–>末行:輸入模式不能直接轉換到末行模式

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

2.png


    5、退出文件

        需要先切換到編輯模式之后才可以退出,在切換到編輯模式后鍵入一個命令即可進行相關的操作

            :q    退出
            :q!   強制退出,丟棄做出的修改
            :wq   保存退出
            :x    保存退出

            :wq!  強制保存退出

            :w /PATH/TO/SOMEFILE 保存到指定文件中

?      編輯模式保存退出的快捷鍵:
            ZZ: 保存退出
            ZQ:不保存退出

        末行模式時:

            :r filename 讀文件內容到當前文件中
            :w filename 將當前文件內容寫入另一個文件
            :!command   末行模式可以執行其它命令,執行完后還可以返回到當前編輯文本
            :r!command  將末行模式執行命令輸出的內容讀到當前編輯的文本中


    6、命令模式下的光標跳轉

        字符間跳轉:
            h: 左 l: 右 j: 下 k: 上
            #COMMAND:跳轉由#指定的個數的字符;


?      單詞間跳轉:
            w:下一個單詞的詞首
            e:當前或下一單詞的詞尾
            b:當前或前一個單詞的詞首
#COMMAND:由#指定一次跳轉的單詞數


        當前頁跳轉:
            H:頁首 M:頁中間行 L:頁底

        行首行尾跳轉:
            ^: 跳轉至行首的第一個非空白字符;
            0: 跳轉至行首
            $: 跳轉至行尾
        

        行間移動:
            #G:跳轉至由#指定行
            G:最后一行

            1G, gg: 第一行
        

        句間移動:
            ):下一句 (:上
一句

        段落間移動:
            }:下一段 {:上一段


    7、命令模式下的翻屏操作

       Ctrl+f: 向文件尾部翻一屏
?      Ctrl+b: 向文件首部翻一屏
?      Ctrl+d: 向文件尾部翻半屏
?      Ctrl+u:向文件首部翻半屏
 


    8、命令模式下的命令操作

        字符編輯:
            x: 刪除光標處的字符;
            #x: 刪除光標處起始的#個字符
            xp: 交換光標所在處的字符及其后面字符的位置
            ~:轉換大小寫


        替換命令(r, replace)
            r: 替換光標所在處的字符
            R:切換成REPLACE模式

    

        刪除命令:
            d: 刪除命令,可結合光標跳轉字符,實現范圍刪除;
            d$: 刪除到行尾
            d^:刪除到非空行首
            d0:刪除到行首
            dw:
            de:
db:
            #COMMAND
?          dd: 刪除光標所在的行
            #dd:多行刪除
?          D: 從當前光標位置一直刪除到行尾,留空行,等同于d$


        復制命令(y, yank):
            y: 復制,行為相似于d命令
            y$
            y0
            y^
            ye
            yw
yb
            #COMMAND
 ?         yy:復制行
            #yy: 復制多行
?          Y: 復制整行

        粘貼命令(p, paste):
            p:緩沖區存的如果為整行,則粘貼當前光標所在行的下方;否則,則粘貼至當前光標所在處的后面
            P:緩沖區存的如果為整行,則粘貼當前光標所在行的上方;否則,則粘貼至當前光標所在處的前面


        改變命令(c, change)
            c: 修改后切換成插入模式
?          命令模式 –> 插入模式
            c$
            c^
            c0
            cb
            ce
            cw
            #COMMAND
?          cc:刪除當前行并輸入新內容
            #cc:
?          C:刪除當前光標到行尾,并切換成插入模式


        其它用法

            100iwang [ESC] 粘貼“ wang” 100次
?          <start position><command><end position>
?          Command:
                y 復制、 d 刪除、 gU 變大寫、 gu 變小寫
                例如 0y$ 命令意味著:
                0 → 先到行頭
                y → 從這里開始拷貝
                $ → 拷貝到本行最后一個字符
                ye 從當前位置拷貝到本單詞的最后一個字符


    9、末行模式下的命令操作

        地址定界

            :start_pos,end_pos
            #: 具體第#行,例如2表示第2行;
            #,#: 從左側#表示行起始,到右側#表示行結尾
            #,+#: 從左側#表示的行起始,加上右側#表示的行數(2,+3 表示2到5行)
            .: 當前行
            $: 最后一行
            .,$-1 當前行到倒數第二行
            %:全文, 相當于1,$


        模式匹配與查找

            /pat1/,/pat2/
            從第一次被pat1模式匹配到的行開始,一直到第一次被pat2匹配到的行結束
            #,/pat/
            /pat/,$
?         使用方式:后跟一個編輯命令
            d y
            w file: 將范圍內的行另存至指定文件中
            r file:在指定位置插入指定文件中的所有內容

            查找
            /PATTERN:從當前光標所在處向文件尾部查找
            ?PATTERN:從當前光標所在處向文件首部查找
            n:與命令同方向
            N:與命令反方向

        

        s: 在擴展模式下完成查找替換操作
            格式: s/要查找的內容/替換為的內容/修飾符
            要查找的內容:可使用模式
            替換為的內容:不能使用模式,但可以使用\1, \2, …
            等后向引用符號;還可以使用“ &”引用前面查找時查找到的整個內容
                修飾符:
                    i: 忽略大小寫
                    g: 全局替換;默認情況下,每一行只替換第一次出現
                    gc:全局替換,每次替換前詢問
?             查找替換中的分隔符/可替換為其它字符,例如s@/etc@/var@g  s#/boot#/#i


    10、命令模式的撤銷操作

            u撤銷最近的更改

            #u撤銷之前多次更改
?          U 撤消光標落在這行后所有此行的更改
?          按Ctrl – r重做最后的“撤消”更改
?             . 重復前一個操作
?             n.重復前一個操作n次


    11、多文件模式

            vim FILE1 FILE2 FILE3 …
            :next 下一個
            :prev 前一個
            :first 第一個
            :last 最后一個
            :wall 保存所有
            :qall 退出所有
            :wqall保存退出所有


    12、多窗口模式

            多文件分割
            vim -o|-O FILE1 FILE2 …
                -o: 水平分割
                -O: 垂直分割
            

            在窗口間切換: Ctrl+w, Arrow
?          

            單文件窗口分割:
                Ctrl+w,s: split, 水平分割
                Ctrl+w,v: vertical, 垂直分割
                ctrl+w,q:取消相鄰窗口
                ctrl+w,o:取消全部窗口
                wqall: 退出


    13、vim定制工作特性

            配置文件:永久有效
                全局: /etc/vimrc
                個人: ~/.vimrc
?          擴展模式:當前vim進程有效
?             (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) 文件格式
                啟用: fileformat=unix
                不忽略: fileformat=dos


?             (8) 設置文本寬度
                :set textwidth=65 (vim only)
                :set wrapmargin=15

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

(0)
AndyIvanXueAndyIvanXue
上一篇 2016-08-10
下一篇 2016-08-10

相關推薦

  • 鳥哥馬哥齊相聚,linux界最強音

    臺灣著名Linux網站——“鳥哥的Linux私房菜”的站長蔡德明,2015年3月28日受邀到51CTO進行交流,51cto學院還特此邀請大陸linux權威專家馬哥參與了本次活動,在輕松愉快的氛圍下,馬哥和鳥哥以及其他專家人員對于“容器虛擬化下運維調度層的設計”,“Linux在云計算的應用”,“可視化集成運維平臺最佳實踐”等三個議題展開思想的碰撞。本次馬哥和鳥…

    2015-03-30
  • 馬哥教育網絡班20期-第七周課程作業

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;     ]#mke2fs -t ext4 -b 2048 -L MYDATA -m&n…

    學員作品 2016-09-07
  • Linux進程查看和管理及作業控制

    在linux系統中,內核的功用有:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等,在這眾多的模塊中,進程管理是相對重要的一環,即使不像文件系統和網絡功能那么復雜。在進程管理中,內核對進程的創建、切換、撤銷和調度都有很詳細的定義。  1、進程類型     守護進程:在系統引導過程中啟動的進程,跟終端無關的進…

    學員作品 2016-11-14
  • Linux 用戶,組和用戶權限的使用

    echo -e "Hello,I am 'whoami',the system version is here,please helcheck ist  thanks! \n'lsb_release'"| mail -s 'help'root cmd1 |cmd 2 cma1 2&…

    2016-08-05
  • linux磁盤管理及其磁盤分區工具的使用

    一、 幾種分區工具: 1.圖形化工具gnome-disks使用簡單,在此不在贅述。 2.fdisk使用: fdisk支持MBR,也支持GPT分區,對于一塊硬盤最多只能理解15個分區,一般使用fdisk做MBR分區,gdisk做GPT分區。下面為fdisk分區示例: [root@centos7 ~]# fdisk /dev/sde…

    Linux干貨 2016-08-29
  • sed & vim練習

    1、 刪除/etc/grub2.conf文件中所有以空白開頭的行行首的空白字符  2、刪除/etc/fstab文件中所有以#開頭,后面至少跟一個空白字符的行的行首的#和空白字符 3、在/root/install.log每一行行首增加#號 4、在/etc/fstab文件中不以#開頭的行的行首增加#號 5、處理/etc/fstab路徑,使用s…

    學員作品 2016-08-10
欧美性久久久久