Sky's blog

          我和我追逐的夢

          導(dǎo)航

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          留言簿(8)

          隨筆分類

          隨筆檔案

          閱讀排行榜

          評論排行榜

          常用鏈接

          統(tǒng)計

          其他鏈接

          友情鏈接

          最新評論

          vi常用命令

          用了vi兩年,因為不用vi寫代碼作開發(fā),只是簡單的修改配置文件而已,因此,呵呵,兩年了還是一點不熟悉。最近因為公司要求需要學(xué)習(xí)在linux/unix上開發(fā)c/c++,只好努力學(xué)一下vi/vim了。

          找了一本書,O'Reilly的Learning The VI Editor,chm的電子版本,認(rèn)真地學(xué)了一遍,總結(jié)了一下常用命令:

          文件操作
          vi +n file?打開文件并移動到第n行
          vi +? file?打開文件并移動到最后一行
          vi R file / view file ?只讀打開文件
          :w??保存
          :w!??覆蓋已存在的文件文件
          :w newfile?保存為新文件
          :wq??保存并退出
          ZZ??保存并退出=:wq
          :q??退出
          :q!??退出不保存修改
          :e!??退回到上一次保存的狀態(tài)
          :1,10w newfile?將第一行到第10行保存為新文件
          :.,$w >> file?將當(dāng)前位置到結(jié)尾的內(nèi)容添加到別的文件
          :r file??讀取file文件的內(nèi)容

          移動
          Numeric + h|j|k|l?執(zhí)行n次操作
          h??向左移動(一個字符)
          j??向下移動一行
          k??向上移動一行
          l??向右移動(一個字符)?
          e/E??移動到單詞的末尾
          (/)??移動到當(dāng)前(一下)句的開始
          {/}??移動到當(dāng)前(一下)段的開始
          [[/]]??移動到當(dāng)前(一下)部分的開始
          0??移動到行首
          $??移動到行末
          w??向后移動一個文本塊
          W??向后移動一個文本塊(忽略標(biāo)點)
          b??向前移動一個文本塊
          B??向前移動一個文本塊(忽略標(biāo)點)
          ^??移動到當(dāng)前行的第一個非空白字符
          回車/+??移動到下一行的開頭的第一個字符
          -??移動到上一行的開頭的第一個字符
          CTRL-F??下翻一屏
          CTRL-B??上翻一屏
          CTRL-D??下翻半屏
          CTRL-U??下翻半屏
          z + 回車?將當(dāng)前行移到屏幕頂部
          z.??將當(dāng)前行移到屏幕中間
          z-??將當(dāng)前行移到屏幕底部
          CTRL-L/CTRL-R?重新刷新屏幕?
          H??移到屏幕的第一行
          nH??移到屏幕的第n行
          M??移到屏幕的中間
          L??移到屏幕的最后一行
          nL??移到屏幕的最后一行前的n行
          CTRL-L??顯示行信息
          G??移動到文件的最后一行
          nG??移動到文件的第n行
          ``??移動到上一個位置

          編輯
          i??在當(dāng)前位置前插入
          I??在行首插入
          a??在當(dāng)前位置后添加
          A??在行末添加
          o??在當(dāng)前行下方新建一個空行開始插入
          O??在當(dāng)前行上方新建一個空行開始插入
          s??刪除當(dāng)前字符然后進(jìn)入插入狀態(tài)
          S??刪除當(dāng)前行然后進(jìn)入插入狀態(tài)
          cw??修改當(dāng)前詞語(刪除然后進(jìn)入插入狀態(tài))
          ?c2b?刪除前面兩個詞語?
          ?c$?刪除本行當(dāng)前位置后所有的內(nèi)容
          ?c0?刪除本行當(dāng)前位置前所有的內(nèi)容
          cc??修改當(dāng)前行(刪除然后進(jìn)入插入狀態(tài))
          r??替換當(dāng)前字符(還保持命令狀態(tài))
          R??連續(xù)替換(進(jìn)入替換狀態(tài))
          ~??修改當(dāng)前字符的大小寫
          J??連接兩行

          標(biāo)記
          mx??將當(dāng)前位置標(biāo)記為x
          'x??移動到標(biāo)記為x的行
          `x??移動到標(biāo)記為x的位置
          ``/''??在兩次位置間切換

          刪除
          dw??刪除一個單詞
          d2w??刪除兩個單詞
          dd??刪除當(dāng)前行
          d3d??刪除3行
          d0??刪除當(dāng)前行中在光標(biāo)前的所有內(nèi)容
          d$/D??刪除當(dāng)前行中在光標(biāo)后的所有內(nèi)容
          db??刪除前一個單詞
          x??刪除一個字符
          3x??刪除3個字符

          移動
          p??粘貼
          xp??相當(dāng)于交換兩個字符的位置
          yw??復(fù)制一個單詞

          .??重復(fù)上一個操作
          .??取消上一個操作

          ?

          搜索
          /pattern?從前往后搜
          ?pattern?從后往前搜
          n/N??和上一詞搜索方向相同(相反)再搜
          fx/Fx??在同一行中查找下(上)一個x字符并移動光標(biāo)

          替換
          :s/old/new?替換當(dāng)前行的第一個匹配
          :s/old/new/g?替換當(dāng)前行的全部匹配
          :1,100s/old/new/g?替換1-100行的全部匹配
          :1,$s/old/new/g?替換全部匹配=:%s/old/new/g
          :g/pattern/s/old/new/g?查找滿足pattern條件的行并進(jìn)行替換


          命令組合:
          Change?Delete?Copy?from Cursor to ...
          cH?dH?yH?top of screen
          cL?dL?yL?bottom of screen
          c+?d+?y+?next line
          c5|?d5|?y5|?column 5 of current line
          2c)?2d)?2y)?second sentence following
          c{?d{?y{?previous paragraph
          c/pattern d/pattern y/pattern pattern
          cn?dn?yn?next pattern
          cG?dG?yG?end of file
          c13G?d13G?y13G?line number 13
          (這里還是看書里面的原文吧。)

          posted on 2006-09-05 10:55 sky ao 閱讀(1257) 評論(0)  編輯  收藏 所屬分類: linux

          主站蜘蛛池模板: 沙河市| 综艺| 荣成市| 漾濞| 延寿县| 祁门县| 固始县| 泗水县| 莱州市| 南投市| 栾城县| 新巴尔虎右旗| 穆棱市| 清新县| 时尚| 子洲县| 都匀市| 华容县| 克东县| 昌黎县| 兴海县| 临颍县| 建宁县| 甘孜| 潮州市| 手游| 阳新县| 玛纳斯县| 威海市| 周口市| 奎屯市| 申扎县| 绍兴市| 荥经县| 石屏县| 金沙县| 西和县| 太保市| 深州市| 迁安市| 哈巴河县|