vim編輯器

 

Linux文本編輯器vim

    Linux下的編輯器最常用的就是vim或者vi文本編輯。vi和vim編輯器的區別是vim是vi的改進版本,在vi編輯器的基礎上上擴展了很多實用的功能。

vim的使用

用vim打開文件:
    vim [options] [file ..]
        +#:打開文件之后,直接讓光標處于第#的行首
        +/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首

vim的工作模式及模式轉換

vim在工作過程中有三種模式:
    1、編輯模式:也叫命令模式(進入編輯器后的默認模式),鍵盤操作常被理解為編輯命令。
    2、輸入模式:在文本文件當中進行輸入內容。
    3、末行模式:vim內置的命令行接口,可以執行vim的內置命令。

模式轉換:
    1、從編輯模式轉換為輸入模式可以使用如下命令:
        i:insert,在光標所在處輸入
        a:append,在光標所在處后方輸入
        o:在光標所在處下方打開一個新行
        I:在光標所在行的行首輸入
        A:在光標所在行的行尾輸入
        O:在光標所在處上方打開一個新行

    2、從輸入模式轉換為編輯模式:按ESC鍵

    3、從編輯模式轉換為末行模式:敲 ":" 即冒號

    4、從末行模式轉換為編輯模式:按ESC鍵

        注:轉換順序, 輸入-->編輯-->末行; 輸入模式不能直接轉換到末行模式

關閉文件

    需要切換到編輯模式后才能退出,在切換為編輯模式后鍵入以下命令即可進行相關操作:
        :q 退出
        :q! 強制退出,不保存此前的編輯操作
        :wq 保存并退出
        :x 保存并退出
        :w /PATH/TO/SOMEFILE 另存為其它路徑

            注:編輯模式保存退出的快捷鍵:ZZ

光標跳轉

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

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

    行首行尾跳轉:

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

    行間跳轉:
        #G:跳轉至由#指定的行
        1G,gg:跳轉至第一行
        G:最后一行

    句間跳轉:
        ):跳到下一句
        (:跳到前一段

    段間跳轉:
        }:下一段
        {:前一段

    翻屏:
        Ctrl+f:向文件尾部翻一屏
        Ctrl+b:想文件首部翻一屏
        Ctrl+d:向文件尾部翻半屏
        Ctrl+u:想文件首部翻半屏
        Eeter:按行向后翻

vim的編輯命令:

    字符編輯:
        x:刪除光標所在處的字符
        #x:刪除光標所在處起始的#個字符
        xp:交換光標所在處的字符與其后面的字符的位置

    替換命令:
        r:替換光標所在處的字符

    刪除命令:
        d:刪除命令,可結合光標跳轉字符,實現范圍刪除
        dd:刪除光標所在處的行
        #dd:刪除光標所在處的行起始的共#行

    粘貼命令:
        p:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方;否則粘貼在當前光標所在處的后方
        P:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方;否則粘貼在當前光標所在處的前方

    復制命令:
        y:復制,工作行為相似與d命令
        yy:復制一整行
        #y:復制從當前行向下#行內容

    改變命令(change,c)
        編輯模式-->輸入模式,實現刪除操作
                cc:刪除光標所在的行,并轉換為輸出模式

    可視化模式:    
        v:按字符選定
        V:按行選定
            通常結合編輯命令; d、c、y使用

    撤銷操作:
        u:撤銷此前的操作;
        #u:撤銷此前的#個操作

    撤銷此前的撤銷:
        Ctrl+r

    重復執行前一個編輯操作:
        .(按點號)

vim末行模式:內建命令行接口

    1、地址定界
        :start_pos[,end_pos]
        #:特定的第#行,例如5即第5行
        .:當前行
        $:最后一行
        %:全文
        #,#:指定行范圍,左側為起始行,右側為結束行
        #,+#:指定行范圍,左側為起始行絕對編號,右側為相對左側行號的偏移量,例如3,+7
        /pattern/:從光標所在處起始向文件尾部第一個被模式多所匹配到的行
        /pat1/,/pat2/:從光標所在處起始,第一次有pat1匹配到的行開始,至第一次由pat2匹配到的行結束之間所有行

        可同編輯命令一同使用,實現編輯操作

            w /PATH/TO/SOMEFILE:將范圍內的文本保存至指定的文件中
            r /PATH/FROME/SOMEFILE:將指定的文件中的文本讀取并插入至指定位置

    2、查找
        /PATTERN:從當前光標所在處想文件尾部查找能夠被當前模式匹配到的所有字符串
        ?PATTERN:從當前光標所在處想文件首部查找能夠被當前模式匹配到的所有字符串


    3、查找并替換
        s:末行模式的命令,使用格式
            s/要查找的內容/替換為的內容/修飾符
                  要查找的內容:可使用正則表達式
                  替換為的內容:不能使用正則表達式,但可以引用
                注:如果“要查找的內容”部分在模式中使用分組符號;在“替換為的內容”中使用后向引用,直接引用查找模式匹配到的全部文本,要使用&符號;

                  修飾符:
                  i:忽略大小寫
                  g:全局替換,意味著一行中如果匹配到多次,則均替換

            可把分隔符(/)替換為其它非常用字符:
                s@@@
                s###

vim的多文件功能:即一次打開多個文件

    用vim打開多個文件:
        vim FILE1 FILE2 ...
    在文件中切換:
        :next   切換到下一個文件
        :prev   切換到上一個文件
        :first  切換到第一個文件
        :last   切換到最后一個文件
    退出所有文件:
        :wqall   保存所有文件并退出
        :wall    保存所有文件
        :qall    退出所有文件

vim的多窗口模式

    vim可以打開多個文件,亦可多個文件同時顯示:
        vim  [-o|-O] FILE1 FILE2 ...

    選項:
        -o:水平分割窗口
        -O:垂直分割窗口
        在窗口間切換 ctrl+w+上下左右鍵

        注:單個文件也可以分割為多個窗口進行查看
            ctrl+w,s:水平分割窗口
            ctrl+w,v:垂直分割窗口

定制vim的工作特性

    需要在末行模式下設定,但僅對當前vim有效,如需永久有效則需如下設置:
        全局: /etc/vimrc
        用戶個人:~/.vimsc

    窗口屬性定義:
        1、行號
            顯示:set number,簡寫為 set nu
            取消顯示:set nonumber 簡寫為 set nonu
        2、括號匹配高亮
            匹配:set showmatch,set sm    
            取消:set nosm
        3、自動縮進
            啟動:set ai
            取消:set noai
        4、高亮搜索
            啟用:ste hlsearch
            取消:ste nohlsearch
        5、語法高亮
            啟用:syntax on        
            取消:syntax off
        6、忽略字符大小寫
            啟用:set ic
            取消:set noic

 

原創文章,作者:641348038@qq.com,如若轉載,請注明出處:http://www.www58058.com/61545

(0)
641348038@qq.com641348038@qq.com
上一篇 2016-12-04
下一篇 2016-12-04

相關推薦

  • 二叉樹的應用詳解 – 數據結構

    概述: 平衡樹——特點:所有結點左右子樹深度差≤1 排序樹——特點:所有結點“左小右大字典樹——由字符串構成的二叉排序樹判定樹——特點:分支查找樹(例如12個球如何只稱3次便分出輕重)帶權樹——特點:路徑帶權值(例如長度) 最優樹——是帶權路徑長度最短的樹,又稱 Huffman樹,用途之一是通信中的壓縮編碼。 1. 二叉排序樹(二叉查找樹 Bina…

    Linux干貨 2015-04-07
  • haproxy實現discuz論壇的動靜分離和負載均衡

    一、在cs2、cs3、cs4上安裝httpd [root@cs2 ~]# yum install httpd [root@cs3 ~]# yum install httpd [root@cs4 ~]# yum install httpd 二…

    Linux干貨 2016-06-05
  • Bash的I/O重定向及管道

    每周更新的博客定時派送啦,本周與大家一起分享的是重定向和管道 首先了解一下 讀入數據:Input 輸出數據:Output 我們來看一下重定向:  >  覆蓋重定向 上面圖中 > 文件名     創建空文件 touch 文件名 創建空文件 這兩種方法都可以創建一個新的文…

    2017-07-21
  • 文件的元數據有那些,怎么樣查看和修改文件時間戳

    數據(Metadata),又稱中介數據、中繼數據,為描述數據的數據(data about data), 主要是描述數據屬性(property)的信息,用來支持如指示存儲位置、歷史數據、資源查找、文件記錄等功能。 元數據算是一種電子式目錄,為了達到編制目錄的目的,必須在描述并收藏數據的內容或特色, 進而達成協助數據檢索的目的。元數據就是數據的數據。任何文件系統…

    Linux干貨 2017-08-28
  • 軟件包管理(rpm篇)

    軟件包管理(rpm篇)靜態和動態鏈接    鏈接主要作用是把各個模塊之間相互引用的部分處理好,使得各個模塊之間能夠正確地銜接,分為靜態鏈接和動態鏈接    靜態鏈接        把程序對應的依賴庫復制一份到包&nbsp…

    Linux干貨 2017-04-24
  • linux 學習之權限優先級

    linux下對同一文件的權限分成很多類,同時也可能對同一文件權限配置多種權限那么在這么多配置中,到底是怎么生效的呢?比如一個文件abc.txt屬于wang用戶,而同時對abc.txt又設置了ACL禁止 wang用戶讀寫執行等等這些情況就是ACL的生效順序完全理解,模擬出實驗環境一一驗證1,文件a屬于mage用戶,但ACL限制 mage讀寫執行 Paste_I…

    Linux干貨 2017-05-29

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-07 23:34

    文字描述如果能結合事例加以說明就更好了,加油!

欧美性久久久久