Dev@Free

          zJun's Tech Weblog

          [Unix] vi基本操作方法

          一 vi的操作模式
          vi提供兩種操作模式:輸入模式(insert mode)和指令模式(command mode)。在輸入模式下,用戶可輸入文本資料。在指令模式下,可進行刪除、修改等各種編輯動作。

          在輸入模式下,按Esc鍵切換到指令模式下。
          在指令模式下,按輸入指令(i、a、o等)進入輸入模式。


          二 進入vi

          $?vi??filename

          直接鍵入“vi + 所要編輯的文件名”,即可對指定的文件進行編輯。
          如果指定的文件為新文件,則提示:“New file”,否則顯示該文件的當前內容。

          $?view?filename

          以只讀方式打開文件filename

          三 指令模式
          3.1 進入輸入模式

          ?a?????在當前游標之后輸入
          ?A?????在當前行之末輸入
          ??i?????在當前游標之前輸入
          ??I?????在當前行之首輸入
          ?o?????在當前行之下新增一行,并在新增行輸入
          ?O?????在當前行之上新增一行,并在新增行輸入
          輸入結束后,按Esc鍵退出輸入模式


          3.2 游標移動

          ?h?向左移動一個字元
          ?l?向右移動一個字元
          ?j?向下移動一個字元
          ?k?向上移動一個字元
          ?b?左移一個單詞,至詞首
          ?w?右移一個單詞,至詞尾
          ?0
          ?移到當前行行首
          ?$?移到當前行行尾
          ?+?移至下一行的行首
          ?-?移至上一行的行首
          ?H?移至視窗的第一行
          ?M?移至視窗的中間一行
          ?L?移至視窗的最后一行
          ?G?移至該文件的最后一行
          ?nG?移至該文檔的第n行
          ?n+?下移n行
          ?n-?上移n行

          3.3 視窗移動

          ??<Ctrl>?+?f?視窗下卷一頁
          ??<Ctrl>?+?b?視窗上卷一頁
          ? ?<Ctrl>?+?d?視窗下卷半頁
          ?<Ctrl>?+?u?視窗上卷半頁
          ???<Ctrl>?+?e?視窗下卷一行
          ???<Ctrl>?+?y?視窗上卷一行

          3.4 刪除操作

          ?x?刪除游標所在字元
          ?X?刪除游標前一字元
          ?dw?從游標當前位置開始向后刪除一個單詞
          ?db?從游標當前位置開始向前刪除一個單詞
          ?d0?從行首刪除至當前游標位置
          ?d$?從游標當前位置刪除至行尾
          ?dd?刪除游標所在行
          ?D?同d$

          3.5 修改操作

          ?s?修改游標所在字元,修改完成后按Esc鍵結束
          ?S?修改整行內容,修改完成后按Esc鍵結束
          ?r?替換當前游標所在字元
          ?R?進入替換狀態,直至按Esc鍵結束
          ?cw?修改一個單詞(從游標位置至詞尾)
          ?cb?修改一個單詞(從詞首至游標位置)
          ?cc?修改整行內容,完成后按Esc鍵結束,同S
          ?c0?修改行首至游標位置的內容
          ?c$?修改游標位置至行尾的內容
          ?~?游標所在字元大小寫切換

          3.6 指令重復
          在指令模式中,可在指令前面加入一個數字n,則該指令會重復執行n次。常用的重復操作有:

          ?nx?刪除n個字元
          ?ndd?刪除n行
          ?ns?修改n個字元

          3.7 取消前一動作(Undo)

          ?u?撤消上一指令的結果

          3.8 查找字符串

          ?/字符串?從當前游標向后查找該字符串
          ??字符串?從當前游標向前查找該字符串
          ?n?從當前游標向后查找下一個字符串
          ?N?從當前游標向前查找下一個字符串

          3.9 查看編輯狀況

          ?<Ctrl>?+?g?顯示正在編輯的文件名、當前游標所在行數、文件總行數、文件是否被修改


          四 保存與退出

          ?:w?保存,但不退出
          ?:wq?保存并退出
          ?:x?同:wq
          ?:q?退出,如果當前文件沒有保存,禁止退出
          ?:q!?不保存退出
          ?:w?file1?將內容保存至文件file1中,注意:此時編輯的仍為原文件
          ?:w!?file1?將內容覆蓋保存至文件file1中,如文件file1存在,:w?file1將禁止執行

          ?

          五 環境設置

          ?:set?顯示已設置的環境狀況
          ?:set?all?顯示所有的環境設置選項
          ?:set?nu?顯示行號
          ?:set?nonu?不顯示行號
          ?:set?ts
          = n?設置Tab鍵的長度為n

          六 執行指令
          以下用具體的數字為例進行介紹,數字表示行數,游標所在行可用“.”代替,文件最后一行可用“$”代替。

          ?: 10 , 20d?刪除第10行至第20行的內容
          ?:10d?刪除第10行的內容
          ?:%d?刪除全部內容
          ?:
          10 ,
          20co30?將第10行至第20行的內容復制到第30行之后
          ?:
          10 ,
          20mo30?將第10行至第20行的內容移動到第30行之后
          ?:
          1 ,
          $s/old/new?將第1行至最后一行中的old替換成new
          ?:
          1 ,
          $s/^/new?將第1行至最后一行的內容前面插入new
          ?:
          10 ?將游標移至第10行

          七 重復指令

          ?.?重復上一條指令


          八 切換到shell狀態

          ?:sh?切換到shell狀態,exit返回

          ?

          posted on 2006-07-05 17:15 zJun's帛羅閣 閱讀(2766) 評論(1)  編輯  收藏

          評論

          # re: [Unix] 基本操作方法 2007-02-21 09:17

          我想知道UNIX中基本操作  回復  更多評論   


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


          網站導航:
           

          導航

          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          統計

          常用鏈接

          留言簿(15)

          隨筆分類

          隨筆檔案

          相冊

          收藏夾

          博客

          文檔

          站點

          論壇

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 三明市| 临澧县| 合江县| 宜阳县| 多伦县| 蒲江县| 天祝| 敦煌市| 承德市| 英吉沙县| 江华| 宾阳县| 贺州市| 松江区| 左权县| 璧山县| 鸡西市| 甘谷县| 莲花县| 仁怀市| 英超| 长乐市| 博湖县| 榆社县| 金乡县| 永川市| 堆龙德庆县| 旬邑县| 营口市| 定远县| 海口市| 汉中市| 左权县| 孝义市| 鸡泽县| 湟中县| 江津市| 屏南县| 大安市| 清苑县| 乐业县|