posts - 108,comments - 56,trackbacks - 0
             Vi是“Visual interface”的簡稱,它在Linux上的地位就仿佛Edit程序在Dos上一樣。它可以執行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據自己的需要對其進行定制,這是其他編輯程序所沒有的。
           
             Vi不是一個排版程序,它不象Word或WPS那樣可以對字體、格式、段落等其他屬性進行編排,它只是一個文本編輯程序。
           
             Vi沒有菜單,只有命令,且命令繁多。Vi有三種基本工作模式:命令行模式、文本輸入模式和末行模式。
           
             命令行模式 (command mode/一般模式)
             任何時候,不管用戶處于何種模式,只要按一下鍵,即可使Vi進入命令行模式;我們在shell環境(提示符為$)下輸入啟動Vi命令,進入編輯器時,也是處于該模式下。 
             在該模式下,用戶可以輸入各種合法的Vi命令,用于管理自己的文檔。此時從鍵盤上輸入的任何字符都被當做編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令之后完成相應的動作。但需注意的是,所輸入的命令并不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,Vi會響鈴報警。
           
             文本輸入模式 (input mode/編輯模式)
             在命令模式下輸入插入命令i、附加命令a 、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被Vi當做文件內容保存起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按鍵即可。 

             末行模式 (last line mode/指令列命令模式)
             末行模式也稱ex轉義模式。 
             Vi和Ex編輯器的功能是相同的,二者主要區別是用戶界面。在Vi中,命令通常是單個鍵,例如i、a、o等;而在Ex中,命令是以按回車鍵結束的正文行。Vi有一個專門的“轉義”命令,可訪問很多面向行的Ex命令。在命令模式下,用戶按“:”鍵即可進入末行模式下,此時Vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的提示符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令執行完后,Vi自動回到命令模式。

             一、由一般模式轉到輸入模式的命令
             1〉光標移動命令
          0 移動到光標所在列的最前面[Home]
          $ 移動到光標所在列的最後面[
          End]
          [CTRL][d] 向下半頁
          [CTRL][f] 向下一頁[PageDown]
          [CTRL][u] 向上半頁
          [CTRL][b] 向上一頁[PageUp] 
          H移動到視窗的第一列
          M移動到視窗的中間列
          L移動到視窗的最后列
          G移動到文件最后列
          nG直接用數字 n 加上大寫 G 移動到第 n 行 (等同于命令“:n”) 
          fx往右移動到 x 字符上
          tx往右移動到 x 字符前
          shift 
          +g 跳到文件尾 (等同于G)
          gg 跳到文件頭
          xp 交換兩個字符位置
          ddp 上下兩行調換
          [ 移到文件開始位置
          ] 移到文件結束位置
          nk向上移n行
          n↑向上移n行
          n-向上移n行,光標在該行的起始
          ni  向下移n行
          n+向下移n行,光標在該行的起始
          n↓向下移動n行
          w  向前移動一個word
          nw  向前移動n個word
          →  向右移動一個字符【l】
          ←  向左移動一個字符【h】
          ↑  向上移動一行【k】
          ↓  向下移動一行【j】

             2〉刪除操作命令
          x 刪除光標所在的字符【delete】
          dw 刪除光標所在的單詞
          d $ 刪除光標至行尾的所有字符
          /d d 同/d d $
          dd 刪除當前行
          dnd 刪除當前n行
          dG  刪除當前行到最后一行
          可在刪除命令前加上數字,如
          <5x表示刪除5行。

             3〉改變與替換操作命令
          r 替換光標所在的字符
          /rr 替換字符序列
          c $ 替換自光標位置至行尾的所有字符
          cl 修改當前字符
          cc 修改當前行
          c$ 修改到行尾的內容
          :%s#abc#123#g 將文中的所有abc都替換為123
          ddp  上下兩行交換(其實是先dd,然后執行p)

             4〉查詢命令
          /string 往前搜索string【支持正則】
          n 查找下一個
          ?string  往后搜索string
          /+
          上下箭頭 搜索歷史
          :
          +上下箭頭 :命令的歷史
          * 往前查找當前word,前提是光標移動到要查找的word
          # 往后查找當前word,前提是光標移動到要查找的word
          /\<word\> 只匹配word,不匹配wordstr等等
          %  查找匹配的括號,前提是光標要在一邊的括號上
          fx  在當前行移動到下一個字符x

             5〉拷貝與粘貼命令
          yw 將光標所在單詞拷入剪貼板
          y$ 將光標至行尾的字符拷入剪貼板
          Y 同
          yy 將當前行拷入剪貼板
          yny  將當前n行拷入剪貼板
          p 將剪貼板中的內容粘貼在光標后
          P 將剪貼板中的內容粘貼在光標前

             6〉文件編輯、保存及退出vi命令
          :q 不保存退出
          :q! 不保存強制性退出
          :w 保存編輯
          :w filename 存入文件filename中
          :w! filename 強制性存入文件filename中
          :wq 
          / :x / ZZ 保存退出
          :wq!  強制保存然后退出

             7〉其他命令
          :args  顯示當前文件名
          u   撤銷,相當于Ctrl+z
          U   一次撤銷一行的所有操作
          Ctrl+R  重做
          :help  查看所有幫助
          :help  0  查看關于0的幫助
          ZZ  退出幫助,回到編輯模式 
          Ctrl+G  知道【文件名  是否修改  當前第一行  前面所占行的百分比】
          Ctrl+v  選擇一個塊
          :set number  顯示行號
          :set nonumber  不顯示行號
          :set rule  顯示光標位置
          :set ignorecase  搜索不區分大小寫
          :set noignorecase 搜索區分大小寫
          :ab string string 提示(比如:ab abc abcdefg,當輸入abc然后輸入空格,abc自動變為abcdefg)
          :new filename 打開或新建文件,如果不指定文件名或者文件名不存在則是新建文件。
          :set ruler 打開光標的行列位置顯示功能
          :set shiftwidth=4 設置自動縮進格數
          :set autoindent 打開自動縮進功能
          :set paste 粘貼的時候關閉自動縮進
          :set nopaste 粘貼的時候打開自動縮進

             三、進入vi的命令
          vi filename: 打開或新建文件,并將光標置于第一行首 
          vi 
          +n filename: 打開文件,并將光標置于第n行首 
          vi 
          + filename: 打開文件,并將光標置于最后一行首 
          vi 
          +/pattern filename: 打開文件,并將光標置于第一個與pattern匹配的串處 
          vi 
          -r filename: 在上次正用vi編輯時發生系統崩潰,恢復filename 
          vi filename.filename: 打開多個文件,依次進行編輯
          vi + /word filename:進入vi并且由文件的word這個字開始

              注意:Ctrl+S在Linux下是停止顯示終端的輸出,這個時候屏幕就像定住了一樣,終端不會繼續輸出,也不會響應你的輸入,需要按一下 Ctrl-Q 即可恢復輸入。

              命令大多了,還是看文檔。
          posted on 2007-09-06 11:33 破繭而出 閱讀(12896) 評論(1)  編輯  收藏 所屬分類: Linux

          FeedBack:
          # re: VI/VIM常用命令[未登錄]
          2013-04-27 14:34 | Alan
          有幫助。
          謝謝博主。  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 安远县| 洪雅县| 玛沁县| 治多县| 普安县| 永泰县| 富川| 舒兰市| 绍兴县| 来安县| 亳州市| 胶南市| 元氏县| 康定县| 乐山市| 天台县| 松滋市| 光山县| 镶黄旗| 宁明县| 象山县| 城固县| 宁乡县| 永春县| 温宿县| 台安县| 开江县| 朔州市| 定兴县| 海安县| 枝江市| 上犹县| 万州区| 普安县| 平乐县| 北碚区| 临沂市| 尚义县| 札达县| 灵璧县| 连南|