vim的基本用法和參數

VIM簡介
vi: Visual Interface,文本編輯器
文本:ASCII, Unicode
文本編輯種類:
行編輯器: sed
全屏編輯器:nano, vi
vim - Vi Improved
其餘編輯器:
gedit 一個簡單的圖形編輯器
gvim 一個Vim編輯器的圖形版本 vim

打開文件:
    # vim [OPTION]... FILE...  
        +#: 打開文件後,讓光標處於第#行的行首,+默認行尾 
        +/PATTERN:打開文件後,直接讓光標處於第一個被PATTERN匹配到的行的 行首  
        –b file 二進制方式打開文件  
        –d file1 file2…  比較多個文件  
        -m file  只讀打開文件 
        ex  file 或 vim –e  直接進入ex模式 若是該文件存在,文件被打開並顯示內容   
        若是該文件不存在,當編輯後第一次存盤時建立它 

模式:  
    擊鍵行爲是依賴於 vim的 的「模式」 
    三種主要模式: 
        命令(Normal)模式:默認模式,移動光標,剪切/粘貼文本 hjkl上下左右
        插入(Insert)或編輯模式: 修改文本 
        擴展命令(extended command )模式: 保存,退出等 
    Esc鍵 退出當前模式 
    Esc鍵 Esc鍵 老是返回到命令模式

模式轉換:
    命令模式 --> 插入模式  
        i: insert, 在光標所在處輸入  
        I:在當前光標所在行的行首輸入  
        a: append, 在光標所在處後面輸入  
        A:在當前光標所在行的行尾輸入  
        o: 在當前光標所在行的下方打開一個新行  
        O:在當前光標所在行的上方打開一個新行   

    插入模式 --------> 命令模式     
        ESC 

    命令模式 --------> 擴展命令模式       
        : 

    擴展命令模式 --------> 命令模式       
        ESC,enter
關閉文件
    擴展模式:
        :q      退出
        :q! 強制退出,丟棄作出的修改
        :wq 保存退出
        :x      保存退出
        :w  filename 另存爲
        :w!filename 強制另存會覆蓋filename文件
    命令模式:
        ZZ:保存退出
        ZQ:不保存退出

    擴展模式:
        按「:」進入Ex模式  
        建立一個命令提示符:   處於底部的屏幕左側 
        命令:  
            w 寫(存)磁盤文件  
            wq 寫入並退出 
            x 寫入並退出  
            q  退出  
            q! 不存盤退出,即便更改都將丟失   
            r filename 讀文件內容到當前文件中  
            w  filename 將當前文件內容寫入另外一個文件  
            !command 執行命令  r!command 讀入命令的輸出 

    字符間跳轉:  
        h: 左  l: 右 j: 下 k: 上  
        #COMMAND:跳轉由#指定的個數的字符 
    單詞間跳轉:  
        w:下一個單詞的詞首  
        e:當前或下一單詞的詞尾  
        b:當前或前一個單詞的詞首  
        #COMMAND:由#指定一次跳轉的單詞數 
    當前頁跳轉:  
        H:頁首  
        M:頁中間行 
        L:頁底  

    行首行尾跳轉:  
        ^: 跳轉至行首的第一個非空白字符  
        0: 跳轉至行首  
        $: 跳轉至行尾 
    行間移動: 
        #G、擴展模式:# :跳轉至由#指定行 
        G:最後一行  
        1G, gg: 第一行 
    句間移動: 
        ):下一句 (:上一句 

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

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

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

    替換命令(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:刪除當前行並輸入新內容,至關於S  #cc:  
    C:刪除當前光標到行尾,並切換成插入模式    

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

    地址定界  
        :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 

    撤銷更改:
        u撤銷最近的更改 
        #u撤銷以前屢次更改 
        U 撤消光標落在這行後全部此行的更改 
        按Ctrl - r重作最後的「撤消」更改 
        . 重複前一個操做 
        n.重複前一個操做n次 

 vim的寄存器
    有26個命名寄存器和1個無命名寄存器,常存放不一樣的剪貼版內容,能夠不一樣會話間 共享 
    寄存器名稱a,b,…,z,格式:「寄存器   放在數字和命令之間  
        如:3"tyy 表示複製3行到t寄存器中   
            "tp  表示將t寄存器內容粘貼 
    未指定,將使用無命名寄存器 
    有10個數字寄存器,用0,1,…,9表示,0存放最近複製內容,1存放最近刪除內容。 
        當新的文本變動和刪除時,1轉存到2,2轉存
        到3,以此類推。數字寄存器不能在不 同會話間共享 

編輯二進制文件

    以二進制方式打開文件  
        vim –b binaryfile 
    擴展命令模式下,利用xxd命令轉換爲可讀的十六進制  
        :%!xxd 
    編輯二進制文件 
    擴展命令模式下,利用xxd命令轉換回二進制  
        :%!xxd –r 
    保存退出 

可視化模式
    容許選擇的文本塊  
        v 面向字符  
        V 面向行  
        ctrl-v 面向塊 
    可視化鍵可用於與移動鍵結合使用:  
        w  )   }   箭頭等 
    突出顯示的文字可被刪除,複製,變動,過濾,搜索,替換等 

多文件模式
    vim FILE1 FILE2 FILE3 ...  
        :next 下一個  
        :prev 前一個  
        :first 第一個  
        :last 最後一個  
        :wall 保存全部  
        :qall 退出全部  
        :wqall 

使用多個窗口
    多文件分割  
        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 退出 

定製vim的工做特性 
    配置文件:永久有效  
        全局:/etc/vimrc  
        我的:~/.vimrc 
    擴展模式:當前vim進程有效 
        (1) 行號  
            顯示:set number, 簡寫爲set nu  
            取消顯示:set nonumber, 簡寫爲set nonu 
        (2) 忽略字符的大小寫  
            啓用:set ic  不忽略:set noic 
        (3) 自動縮進  
            啓用:set ai  禁用:set noai 
        (4) 智能縮進  
            啓用:smartindent 簡寫 set si  
            禁用:set nosi 
        (5) 高亮搜索  
            啓用:set hlsearch  
            禁用:set nohlsearch 
        (6) 語法高亮  
            啓用:syntax on  
            禁用:syntax off 
        (7) 顯示Tab和換行符 ^I 和$顯示  
            啓用:set list  禁用:set nolist 
        (8) 文件格式  
            啓用windows格式:set  fileformat=dos  
            啓用unix格式:set fileformat=unix  簡寫: set ff=dos|unix 
        (9) 設置文本寬度  
            啓用: set textwidth=65 (vim only)  
            禁用: set wrapmargin=15 
        (10) 設置光標所在行的標識線  
            啓用:set cursorline,簡寫cul  
            禁用:set no cursorline 
        (11) 複製保留格式  
            啓用: set paste  禁用: set nopaste  
Set 幫助 
    :help option-list
    :set or :set all 
vi/vim內置幫助      
    :help  
    :help topic
    Use :q to exit help 
vimtutor

%s@^#([[:space:]]+.)$@\1@gc
%s@^#([[:space:]]+.
)@\1@gcwindows

相關文章
相關標籤/搜索