煩惱歲月

          付出總是有回報(bào)的 take action follow your heart , or follow your head
          posts - 40, comments - 5, trackbacks - 0, articles - 4

          vi 編輯器的使用

          Posted on 2009-05-20 15:57 不需要解釋 閱讀(169) 評(píng)論(0)  編輯  收藏

          1、關(guān)于文本編輯器;

          文本編輯器有很多,比如圖形模式的gedit、kwrite、OpenOffice ... ... ,文本模式下的編輯器有vi、vim(vi的增強(qiáng)版本)和nano ... ... vi和vim是我們?cè)贚inux中最常用的編輯器。我們有必要介紹一下vi(vim)最簡(jiǎn)單的用法,以讓Linux入門級(jí)用戶在最短的時(shí)間內(nèi)學(xué)會(huì)使用它。

          nano 工具和DOS操作系統(tǒng)下的edit操作相似,使用簡(jiǎn)單,我們不作介紹了,如果您有興趣,不妨嘗試一下;


          2、vi 編輯器;

          為什么要學(xué)會(huì)簡(jiǎn)單應(yīng)用vi

          vi或vim是Linux最基本的文本編輯工具,vi或vim雖然沒有圖形界面編輯器那樣點(diǎn)鼠標(biāo)的簡(jiǎn)單操作,但vi編輯器在系統(tǒng)管理、服務(wù)器管理中,永遠(yuǎn)不是圖形界面的編輯器能比的。當(dāng)您沒有安裝X-windows桌面環(huán)境或桌面環(huán)境崩潰時(shí),我們?nèi)孕枰址J较碌木庉嬈鱲i;

          vi或vim 編輯器在創(chuàng)建和編輯簡(jiǎn)單文檔最高效的工具;


          3、vi 編輯器的使用方法;


          3.1 如何調(diào)用vi ;

          [root@localhost ~]# vi  filename

          ~
          ~
          ~
          ~
          ~
          ~
          ~
          ~


          3.2 vi 的三種命令模式;

          Command(命令)模式,用于輸入命令;
          Insert(插入)模式,用于插入文本;
          Visual(可視)模式,用于視化的的高亮并選定正文;


          3.3 文件的保存和退出;

          Command 模式是vi或vim的默認(rèn)模式,如果我們處于其它命令模式時(shí),要通過ESC鍵切換過來。

          當(dāng)我們按ESC鍵后,接著再輸入:號(hào)時(shí),vi會(huì)在屏幕的最下方等待我們輸入命令;

          :w  保存;
          :w  filename 另存為filename;
          :wq! 保存退出;
          :wq! filename 注:以filename為文件名保存后退出;
          :q! 不保存退出;
          :x 應(yīng)該是保存并退出 ,功能和:wq!相同


          3.4 光標(biāo)移動(dòng);

          當(dāng)我們按ESC進(jìn)入Command模式后,我們可以用下面的一些鍵位來移動(dòng)光標(biāo);

          j 向下移動(dòng)一行;
          k 向上移動(dòng)一行;
          h 向左移動(dòng)一個(gè)字符;
          l 向右移動(dòng)一個(gè)字符;
          ctrl+b  向上移動(dòng)一屏;
          ctrl+f  向下移動(dòng)一屏;
          向上箭頭    向上移動(dòng);
          向下箭頭    向下移動(dòng);
          向左箭頭    向左移動(dòng);
          向右箭頭    向右移動(dòng);

          我們編輯一個(gè)文件時(shí),對(duì)于 j、k、l和h鍵,還能在這些動(dòng)作命令的前面加上數(shù)字,比如 3j,表示向下移動(dòng)3行。


          3.5 插入模式(文本的插入);

          i  在光標(biāo)之前插入;
          a  在光標(biāo)之后插入;
          I 在光標(biāo)所在行的行首插入;
          A  在光標(biāo)所在行的行末插入;
          o  在光標(biāo)所在的行的上面插入一行;
          O  在光標(biāo)所在的行的下面插入一行;
          s  刪除光標(biāo)后的一個(gè)字符,然后進(jìn)入插入模式;
          S  刪除光標(biāo)所在的行,然后進(jìn)入插入模式;


          3.6 文本內(nèi)容的刪除操作;

          x 一個(gè)字符;
          #x 刪除幾個(gè)字符,#表示數(shù)字,比如3x;
          dw 刪除一個(gè)單詞;
          #dw 刪除幾個(gè)單詞,#用數(shù)字表示,比如3dw表示刪除三個(gè)單詞;
          dd 刪除一行;
          #dd 刪除多個(gè)行,#代表數(shù)字,比如3dd 表示刪除光標(biāo)行及光標(biāo)的下兩行;
          d$ 刪除光標(biāo)到行尾的內(nèi)容;
          J 清除光標(biāo)所處的行與上一行之間的空格,把光標(biāo)行和上一行接在一起;


          3.7 恢復(fù)修改及恢復(fù)刪除操作;

          u  撤消修改或刪除操作;

          按ESC鍵返回Command(命令)模式,然后按u鍵來撤消刪除以前的刪除或修改;如果您想撤消多個(gè)以前的修改或刪除操作,請(qǐng)按多按幾次u。這和Word的撤消操作沒有太大的區(qū)別;


          3.8 可視模式;

          在最新的Linux發(fā)行版本中,vi提供了可視模式,因?yàn)檫@個(gè)功能是vim才有的。如果您用的vi沒有這個(gè)功能,就換成vim就有了。打開可視模式,按ESC鍵,然后按v就進(jìn)入可視模式;

          可視模式為我們提供了極為友好的選取文本范圍,以高亮顯示;在屏幕的最下方顯示有;

          -- 可視 --  

          --VISUAL--

          如圖:

          進(jìn)入可視模式,我們就可以用前面所說的命令行模式中的光標(biāo)移動(dòng)指令,可以進(jìn)行文本范圍的選取。

          選取文本范圍有何用?

          我們可以對(duì)某部份刪除作業(yè),按d鍵就刪除了我們選中的內(nèi)容。
          選中內(nèi)容后,我們按y就表示復(fù)制;按d表示刪除;

          值得一提是的刪除的同時(shí),也表示復(fù)制。我們返回到命令模式,然后移動(dòng)光標(biāo)到某個(gè)位置,然后按shift+p鍵,就把剛才刪除的內(nèi)容貼上了。我們先在這里提一句,在后文,我們還得詳細(xì)說說。

          退出可視模式,還是用ESC鍵;


          3.9 復(fù)制和粘帖的操作;

          其實(shí)刪除也帶有剪切的意思,當(dāng)我們刪除文字時(shí),可以把光標(biāo)移動(dòng)到某處,然后按shift+p鍵就把內(nèi)容貼在原處,然后再移動(dòng)光標(biāo)到某處,然后再按p或shift+p又能貼上;

          p 在光標(biāo)之后粘帖;
          shift+p 在光標(biāo)之前粘帖

          來舉一例:

          比如我們想把一個(gè)文檔的第三行復(fù)制下來,然后帖到第五行的后面,我們應(yīng)該怎么做呢?

          有兩種方法;

          第一種方法:

          先把第三行刪除,把光標(biāo)移動(dòng)到第三行處,然后用dd動(dòng)作,接著再按一下shift+p鍵。這樣就把剛才刪除的第三行帖在原處了。

          接著我們?cè)儆胟鍵移動(dòng)光標(biāo)到第五行,然后再按一下p鍵,這樣就把第三行的內(nèi)容又帖到第五行的后面了;

          第二種方法;

          進(jìn)入可視模式,按ESC鍵,然后按v鍵。移動(dòng)鼠標(biāo)指針,選中第三行的內(nèi)容,然后按y鍵復(fù)制;再移動(dòng)指針到第五行,最后按p鍵;

          所以復(fù)制和粘貼操作,是命令模式、插入模式及可視模式的綜合運(yùn)用;我們要學(xué)會(huì)各種模式之間的切換,要常用ESC鍵;更為重要的學(xué)會(huì)在命令模式下移動(dòng)光標(biāo);


          3.10 關(guān)于行號(hào);

          有時(shí)我們配置一個(gè)程序運(yùn)行時(shí),會(huì)出現(xiàn)配置文件X行出現(xiàn)錯(cuò)誤 。這時(shí)我們要用到行號(hào)相關(guān)的操作;


          為所有內(nèi)容添加行號(hào);

          按ESC鍵,然后輸入:

          :set number

          光標(biāo)所處位置

          在屏幕的右下角,有類似如下的;

                   57,8          27%

          在這之中,57表示第57行,8表示第8個(gè)字符;


          3.11 查找和替換功能;


          3.11.1 查找;

          首先,我們要進(jìn)入ESC鍵,進(jìn)入命令模式;我們輸入/或?就進(jìn)入查找模式了;

          /SEARCH  注:正向查找,按n鍵把光標(biāo)移動(dòng)到下一個(gè)符合條件的地方;
          ?SEARCH  注:反向查找,按shift+n 鍵,把光標(biāo)移動(dòng)到下一個(gè)符合條件的

          舉一例:比如我想在一個(gè)文件中找到swap單詞,我應(yīng)該如下做;

          首先按ESC鍵,進(jìn)入命令模式,然后輸入;

          /swap

          ?swap


          3.11.2 替換;

          按ESC鍵進(jìn)入命令模式;

          :s /SEARCH/REPLACE/g  注:把當(dāng)前光標(biāo)所處的行中的SEARCH單詞,替換成REPLACE,并把所有SEARCH高亮顯示;
          :%s /SEARCH/REPLACE  注:把文檔中所有SEARCH替換成REPLACE;
          :#,# s /SEARCH/REPLACE/g  注:#號(hào)表示數(shù)字,表示從多少行到多少行,把SEARCH替換成REPLACE;

          注:在這之中,g表示全局查找;我們注意到,就是沒有替換的地方,也會(huì)把SEARCH高亮顯示;

          舉例說明:

          比如我們有一篇文檔要修改;

          我們把光標(biāo)所在的行,把所有單詞the,替換成THE,應(yīng)該是:

          :s /the/THE/g

          我們把整篇文檔的所有的the都替換成THE,應(yīng)該是:

          :%s /the/THE

          我們僅僅是把第1行到第10行中的the,替換成THE,應(yīng)該是;

          :1,10  s /the/THE/g


          參考:man vi 和vi –help


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          我實(shí)話告訴你們,我可是身經(jīng)百戰(zhàn)了.bbs我見的多了,哪個(gè)版我沒灌過?你們要知道, 一塌糊 涂的triangle,PIC,SEX版,那比你們不知道厲害到哪里去了,我在那談笑風(fēng)聲.你 們有一好就是無論在哪個(gè)版,什么話題都灌,但是灌來灌去的問題,都too simple, sometimes naive!你 們懂不懂呀?啊?所以說灌水啊,關(guān)鍵是要提高自己的知識(shí)水平.你 們啊,不要總想著弄個(gè)大坑,然后灌上十大,再把我羞辱一番……你們啊,naive!你們這 樣灌是不行地!~那你問我支持 不支持灌水,我說支持,我常來這裡灌,你說支持不支持?
          主站蜘蛛池模板: 玉屏| 郯城县| 彭山县| 和林格尔县| 广元市| 双辽市| 尉氏县| 田林县| 湘乡市| 林州市| 嘉祥县| 沁水县| 江孜县| 洪雅县| 闸北区| 高邑县| 万山特区| 文成县| 承德市| 阳朔县| 洪洞县| 新余市| 台东市| 白山市| 会同县| 新源县| 正阳县| 延川县| 靖宇县| 永川市| 青神县| 宽甸| 乌兰县| 杭锦后旗| 开鲁县| 肃北| 德令哈市| 青铜峡市| 乌兰县| 什邡市| 交口县|