vim編輯器使用詳解

1.vi (virtual interface)文本編輯器

    文本編輯種類:

    行編輯器:sed

    全屏編輯器:nano vi

    vim vi-improved

    其他編輯器:

        gedit:簡單的圖形編輯器

        gvim:vim編輯器的圖形版本

2.vim用法詳解

(1)vim [option]..[file]..

        vim +# file 打開文件時光標在第#行行首

        vim +/pattern 打開文件后,光標在第一次匹配pattern行的行首

        vim + file 打開文件后,光標在最后一行行首

        vim -b file 二進制格式打開文件

        vim -m file 只讀方式打開文件

        vim -d file1 file2…比較不同文件

        vim -e 直接進入ex模式

        文件存在,打開并顯示其內容

        文件不存在,第一次編輯存盤后創建

實例:以root身份以只讀方式打開/etc/shadow文件,且進入后,光標在第一行行首

2.png

1.png

3.vim的三種模式:

        命令模式(默認):移動光標,剪切粘貼文本

        插入模式:修改文本

        拓展命令模式:保存,退出等

        esc退出當前模式

        esc esc返回命令模式

4.模式的轉換

    命令模式——>插入模式

        i:在光標所在處輸入

        I:在光標所在行行首輸入

        a:在光標所在處后邊輸入

        A:在光標所在行行尾輸入

        o:在光標所在行的下方打開一個新行

        O:在光標所在行上方打開一個新行

    插入模式——>命令模式

        esc

     命令模式——>拓展命令行模式

        :

    拓展命令行模式——>命令行模式

        esc

        鎖定和解鎖  ctrl+s    ctrl+q

5.關閉文件的方法

    命令行模式下:

        ZZ:保存退出

        ZQ:不保存退出

    末行模式下:

        :q不保存,直接退出

        :q!強制退出,丟掉做出的修改

        :wq保存退出

        :x 保存退出

6.拓展模式下可做操作

    :q不保存,直接退出

    :q!強制退出,丟掉做出的修改

    :wq保存退出

    :x 保存退出

    :w寫入磁盤

    :r file讀取指定文件到當前文件中

    :w file把當前文件內容保存到指定文件中

    :!command在該模式下執行命令

    :r!command 把命令執行結果讀入當前文件

實例:在末行模式下執行w命令,并把執行結果讀進光標所在行下一行

1470828150457880.png

1470828186538425.png

7.命令行模式下操作說明

    (1)光標移動

        字符間跳轉:

            h:左   j:下  k:上   l:上

            #command 指定一次跳轉的字符數

        單詞間跳轉

            w:移動到下一個單詞詞首

            e:移動到當前詞尾或下一個單詞詞尾

            b:移動到當前詞首或上一個單詞詞首

            #command一次跳轉單詞數

        行首行尾跳轉

            ^:跳轉到非空行首

            0:跳轉到行首

            $:跳轉到行尾

        行間移動

            #G:移動到第#行    末行模式下:#    移動到#行

            G:移動到最后一行

            gg、G:移動到第一行

        句間移動

            ):下一句

            (:上一句

        段間移動

            }:下一段

            {:上一段

        當前頁跳轉

            H:當前頁頁首

            M:當前頁中部

            L:當前頁尾部

        翻屏操作

            ctrl+b :向上翻一頁

            ctrl+f :向下翻一頁

            ctrl+d:向下翻半頁

            ctrl+u:向上翻半頁

    (2)文件內容編輯

        字符編輯

            x:刪除光標處字符

            #x:刪除光標處開始的第#個字符

            xp:交換光標所在字符與其后邊字符的位置

            ~:轉換大小寫

        替換命令

            r:替換光標所在字符

            R:切換成REPLACE模式

        刪除命令

            d:刪除命令,可結合光標跳轉字符,實現范圍刪除

            d$:刪除到行尾

            d^:刪除到非空行首

            d0:刪除到行首

            dw:刪除到下一個單詞詞首

            de:刪除到本單詞或下一個單詞詞尾

            db:刪除到本單詞或上一個單詞詞首

            dd:刪除光標所在行

            #dd:從光標所在行開始連續刪除#行

        復制命令(用法類似于d)

            y

        粘貼命令

            p:如果粘貼內容為一整行,粘貼到光標所在行的下一行,否則在光標后邊(和復制內容容量沒關系)

            P(大寫):如果粘貼內容為一整行,粘貼到光標所在行的上一行,否則在光標前邊

        改變命令

            c:修改后切換成插入模式

            c$:光標所在到行尾刪除重新編輯

            c^:光標所在到非空行首刪除重新編輯

            c0:光標到行首刪除重新編輯

            cw:光標所在到下一個單詞詞首刪除重新編輯

            ce:光標所在到本單詞詞尾或下一個單詞詞尾刪除重新編輯

            cb:光標所在到本單詞詞首或上一個單詞詞首內容刪除重新編輯

            #command

            cc:刪除當前行,并輸入新內容

            #cc實現多行刪除添加新內容(多行刪除為一個空行,但可以添加多行內容)

    (3) 100iwang[esc] 粘貼wang100次

            <start position><command><end position>

            command:

                d 刪除 ;y 復制; gU變大寫; gu變小寫

                例如

                0y$:從行頭拷貝到行尾

實例:一文件內容如下所示,把第八行小寫字母變為大寫

5.png

6.png

發現黃色區域變為大寫

    (4)撤銷更改

            u:撤銷最近的更改

            #u:撤銷之前的#次修改

            U:撤銷光標落在這一行后所作的全部更改

            ctrl+r:取消最近的撤銷更改

            .:重復前邊的操作

            #.:重復上一個操作#次

8.末行模式下操作說明  (地址界定編輯命令)

    (1)地址界定:start-position,end-position

            #:第#行

            #1,#2:從#1行到#2行

            #1,+#2:從#1行開始,再往后數#2個行

            如:2,+3表示2到5行

            .:當前行

            $:最后一行

            $-1:倒數第二行

            %:全文,相當于“1,$”

            /pat1/,/pat2/:從pat1第一次被匹配的行開始,到pat2第一次被匹配的行結束

            #,/pat/:從#行開始,到pat第一次被匹配的行結束

            /pat/,$:從pat第一次被匹配的行開始,到最后一行

    (2)編輯命令

            d:刪除選定內容

            y:復制

            w file:保存到指定文件

            r file:讀入指定文件

    (3)查找

            /pattern 向文件末尾查找

            ?pattern 向文件首部查找

            n:與命令同方向查找

            N:與命令反方向查找

實例:查找文件中的關鍵字“root”

7.png

    (4)查找并替換

            格式:s/要查找的內容/替換位的內容/修飾符

            要查找的內容:可使用模式

            替換位的內容:不可使用模式,但可以使用后向引用符\1,\2…;還可以使     用‘&’引用前邊查到的整個內容

            修飾符:

                i:忽略大小寫

                g:全局替換,默認情況下,僅僅替換第一次出現內容

                gc:每次替換前詢問

            查找替換分隔符可用@、#替換

9.vim的寄存器

    有26個有名寄存器和一個無名寄存器,不同會話間共享

    用a…z表示有名寄存器,用”“寄存器“表示使用哪個寄存器,放在數字和命令之間

    如3"tyy表示復制三行到t寄存器中

    未指定,使用無名寄存器

10.以二進制方式打開文件

    vim -b binaryfile

    末行模式下,利用xxd轉換為可讀的16進制

    :%!xxd

    末行模式下,:%!xxd -r轉換為2進制

實例:把/bin/cat換為16進制的

1470830150444609.png

1470830158375255.png

11.可視化模塊

    v :面向字符

    V:面向行

    ctrl+v面向塊

    可視化可以與移動鍵結合使用

    突出顯示的內容可以被刪除,復制,變更,過濾,搜索,替換。。。

12.多文件模式

    vim file1 file2 file3…

    :next

    :prev

    :first

    :last

    :wall

    :qall

    :wqall

13.使用多窗口

    (1)多文件分割

        vim -o|-O file1 file2…

        -o 水平分割

        -O垂直分割

        窗口切換:ctrl+w

    (2)單文件分割

        ctrl+w+s  水平分割

        ctrl+w+v 垂直分割

        ctrl+w+q 取消相鄰窗口

        ctrl+w+o 取消去不窗口

        :wqall 全部退出

14.(1)配置文件:

            /etc/vimrc  全局配置文件

            ~.vimrc  用戶個人配置文件

    (2)在vim末行模式下

            行號:

                set number(顯示行號)

                set nonumeber(不顯示行號)

            括號成對匹配

                set showmatch 簡寫set sm

                set nosm

            高亮搜索

                set hlsearch

                set nohlsearch

            語法高亮

                 syntax on

                 syntax off

            自動縮進

                set ai

                set noai

        忽略大小寫

                set ic

                set noic

        文件格式

            fileformat=unix

            fileformat=dos

        :set   顯示當前vim設置參數

        :set all: 顯示全部配置參數

15.課后作業

      (1).復制/etc/profile文件到/tmp下,用查找替換方式刪掉/tmp/profile行首的空白字符

1470831890438515.png

12.png

圖中黃色部分即為刪掉部分

(2)復制/etc/rc.d/init.d/functions到/tmp下,用查找替換方式在/tmp/functons文件中以空格為行首的行添加#號

13.png

14.png

(3)如何設置tab縮進4個字符

修改配置文件.vimrc如下

14.png

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

(0)
mengzhiqianmengzhiqian
上一篇 2016-08-15 09:25
下一篇 2016-08-15 09:25

相關推薦

  • btrfs文件系統管理與應用

    btrfs(b-tree、butter fs、better fs),oracle公司研發的替代ext系列的cow機制的文件系統;GPL 核心特性: 多物理卷支持;btrfs可由多個底層物理卷組成;支持RAID,以聯機“添加”、“移除”、“修改”; 寫時復制更新機制(CoW):復制、更新及替換指針,而非“就地”更新; 數據及元數據校驗碼:checksum 子卷…

    Linux干貨 2017-12-18
  • 創建,擴展,縮減LVM2及快照

    相關概念     lvm英文 Logical Volume Manager,邏輯卷管理類似于raid,但又有別于raid, 它是能夠將一個或多個底層塊設     備組織成一個邏輯設備的模塊不具備容錯功能,任一設備損壞或分區損壞,對數據是致命的;它主要有三個部分…

    Linux干貨 2016-02-14
  • Linux系統啟動流程簡圖

    CentOS 系統啟動流程: POST 加電自檢   外部硬件是否都能存在和是否能正常工作ROM:COMS 芯片上的BIOS 基本輸入輸出 BOOT Sequence:   引導加載次序,也就磁盤上的MBR,bootloader 按次序查找各引導設備,第一人有引導程序的設備即為本次啟動用到的設備。 bootloaderr:引導加載器,程序…

    2017-05-13
  • Linux Bash Shell有關變量

    bash 創建一個子bash-n 查看是否有錯誤-x 逐行顯示信息$:顯示當前PIDPPID :顯示父進程PIDSHLVL :顯示當前shell是幾級shellpstree 顯示進程樹-p 同時顯示進程號ps -ef 顯示進程信息 本地變量 :僅對當前SHELL有效,對子SHELL也無效環境變量:對當前SHELL及子SHELL均有效。 set 顯示本地變量和…

    2017-09-16
  • date(時間),timedatectl(時區),cal(日歷)的用法

    date+%F 顯示日期,   顯示格式如 2017-07-15+%T 顯示時間    顯示格式如 15:00:15+%Y 顯示年      顯示格式如 2017+%m 月 +%d 日+%H 時+%M 分+%S 秒+%s 從linux初始到現在經歷了多少秒+%w 顯示數字形式的星期+%a …

    Linux干貨 2017-07-14
  • 創建CA、申請證書和吊銷證書詳解

    創建CA和申請證書、吊銷證書 搭建工具:openssl 服務端:centos7 客戶端:centos6 配置實驗環境: 需要兩臺虛擬機為服務端、客戶端提供運行環境,裝載openssl工具,添加必要文件;通過查看openssl的配置文件/etc/pki/tls/openssl.cnf(圖一),對比服務端的/etc/pki/CA文件內容(圖二),如果第一次搭建服…

    2017-04-11
欧美性久久久久