亚洲免费人人妻人人,cao78在线视频,福建一级毛片,91精品视频免费观看,高清另类图片操逼,日本特黄特色大片免费看,超碰欧美人人澡曰曰澡夜夜泛

[轉(zhuǎn)帖] vi 命令常見問(wèn)題解答Windows系統(tǒng) -電腦資料

電腦資料 時(shí)間:2019-01-01 我要投稿
【www.msguai.com - 電腦資料】

    vi命令常見問(wèn)題解答 作者:譯者Elale [vi-faq中文版] 0.0-引言--我怎樣用這個(gè)FAQ 這個(gè)文檔分為了幾個(gè)部分.首先,第0節(jié)和第1節(jié)介紹了什么是vi;第2節(jié)則收錄了很多新 學(xué)者的問(wèn)題,一些對(duì)vi沒(méi)有很多經(jīng)驗(yàn)的人也經(jīng)常問(wèn)這些問(wèn)題.這里面包括諸如“命令模式和插入 模式

    vi 命令常見問(wèn)題解答

    作者:譯者Elale

    [vi-faq中文版]

    0.0 - 引言 -- 我怎樣用這個(gè)FAQ

    這個(gè)文檔分為了幾個(gè)部分.首先,第0節(jié)和第1節(jié)介紹了什么是vi;第2節(jié)則收錄了很多新

    學(xué)者的問(wèn)題,一些對(duì)vi沒(méi)有很多經(jīng)驗(yàn)的人也經(jīng)常問(wèn)這些問(wèn)題.這里面包括諸如“命令模式和插入

    模式之間的區(qū)別”,以及“我怎樣拷貝和粘貼”之類的問(wèn)題.第3節(jié)是面向vi的中級(jí)用戶的,它從

    問(wèn)題“我如何查找和替換”開始,逐步深入,直到對(duì)vi里面的宏(Macro)的用法討論為止.第3

    節(jié)還包括了一個(gè)vi的快速參考,有一個(gè)規(guī)范的vi命令列表.再下面,是一個(gè)有關(guān)“:set”命令的

    列表,包含了所有能定制vi環(huán)境的變量,這些變量也可以在.exrc文件中定義.

    我們已經(jīng)在一個(gè)運(yùn)行SunOS和UCB版本vi的機(jī)器上驗(yàn)證了快速參考.除了SunOS帶的vi外,

    每個(gè)命令都可以在系統(tǒng)V和UCB版本vi運(yùn)行,但是我個(gè)人并沒(méi)有驗(yàn)證這一點(diǎn).

    除非我們?cè)谖臋n中指明,缺省我們假定你處在命令模式下.

    我們還嘗試保留盡可能多的術(shù)語(yǔ),因?yàn)樵谠嫉膙i文檔中使用了這些術(shù)語(yǔ),盡管我可能

    忘了它的本來(lái)含義.

    0.1 - 索引

    第一個(gè)文件:

    0.0 - 引言 -- 我怎樣用這個(gè)FAQ?

    0.1 - 索引

    0.2 - 我可以散發(fā)這個(gè)FAQ嗎?

    0.3 - 你能為這個(gè)FAQ做什么?

    1.0 - 什么是vi?

    1.1 - 關(guān)于vi有什么重大的交易嗎? 為什么大家都用它? 更進(jìn)一步說(shuō),為什么我要用它?

    1.2 - 噢! 這聽起來(lái)不錯(cuò)! 有沒(méi)有理由不用vi?

    1.3 - vi能在多少不同的操作系統(tǒng)下面運(yùn)行?

    1.4 - 好吧, 你說(shuō)服了我. 我決定開始使用vi. 我該從哪兒開始?

    1.5 - vi有其他一些可用的變種嗎?

    2.0 - vi入門

    2.1 - 有什么游戲幫助我們學(xué)習(xí)vi嗎?

    2.2 - 命令模式和插入模式有什么區(qū)別?

    2.3 - 等等,我的鍵盤沒(méi)有鍵,我該怎么辦?

    2.4 - 那些~s是什么東西?

    2.5 - 我無(wú)法習(xí)慣用 hjkl, 你有什么建議嗎?

    2.6 - 我如何才能不存盤就退出?

    2.7 - 我怎樣插入一個(gè)文件?

    2.8 - 我怎樣查找文本?

    2.9 - 我怎樣搜索一個(gè)控制序列?

    2.10 - 我怎樣重新格式化文本?

    2.11 - 我怎樣復(fù)制文本?

    2.12 - 啊! 我剛才敲了一個(gè)dG,然后我的論文就沒(méi)有了! 我該怎么辦?

    (或者,我剛才犯了個(gè)錯(cuò)誤,我該怎么辦?)

    2.13 - 我正在寫我的論文,被告知我必須將每一節(jié)都放在不同的文件里,我該怎么辦?

    2.14 - 所有的:命令都是怎樣處理的?

    3.0 - 怎樣查找和替換?

    3.1 - 我怎樣在vi中運(yùn)行一個(gè)程序?

    3.2 - 啊! 我正在寫我的論文, 系統(tǒng)崩潰了! 怎么辦?

    3.3 - 有沒(méi)有使vi對(duì)程序員更友好的竅門?

    3.4 - 宏 -- 我怎樣寫宏?

    3.5 - 我怎樣將一個(gè)功能鍵定義成一個(gè)宏?

    3.6 - 有沒(méi)有辦法縮寫文本?

    3.7 - 我怎樣在當(dāng)前文檔中做拼寫檢查?

    3.8 - 我手頭有一個(gè)硬拷貝的終端, 我還能用vi嗎?

    3.9 - 好了,是不是處在開放模式下的原因呀?! 但是我現(xiàn)在沒(méi)有用硬拷貝終端,它還是在

    開放模式呀?

    第二個(gè)文件:

    4.0 - vi檔案的在線幫助在哪兒?

    5.0 - 好玩的vi訣竅,無(wú)聊的宏

    5.1 - 好玩的vi訣竅

    5.2 - 好玩的宏

    6.0 - 依字母順序的vi快速參考

    6.1 - 命令模式的輸入選項(xiàng)(:命令)

    6.2 - 設(shè)置選項(xiàng)(set)

    7.0 - 建立 .exrc文件

    7.1 - .exrc文件的樣本

    8.0 - vi的漏洞

    9.0 - 術(shù)語(yǔ)表

    10.0 - 關(guān)于vi的參考書目

    0.2 - 我可以散發(fā)這個(gè)FAQ嗎?

    可以!只要你沒(méi)有對(duì)它做任何修改,或者用它來(lái)賺錢.

    0.3 - 你能為這個(gè)FAQ做什么?

    首先, 把你發(fā)現(xiàn)的錯(cuò)誤告訴我. 如果你有什么建議我們也很歡迎. 你認(rèn)為還不清楚的地方

    告訴我們,我們同樣歡迎.

    還有, 使用vi! (Spread the word) 我很抱歉我無(wú)法將所有對(duì)這個(gè)FAQ有貢獻(xiàn)的人都列出

    來(lái), 因?yàn)樵S許多多的人都給過(guò)我建議和幫助,如果我將他們都列出來(lái)的話,那么恐怕這張貢獻(xiàn)

    者的清單將和這個(gè)文檔本身一樣長(zhǎng)了.

    1.0 - 什么是vi?

    vi是個(gè)可視化的編輯器(vi就意味著可視化--VIsual). 那么,什么是可視化的編輯器呢?

    (相對(duì)于非可視化的編輯器來(lái)說(shuō))?可視化的編輯器就是可以讓你在編輯文本的時(shí)候看到它們.

    今天,這聽起來(lái)似乎非常普通,反之,非可視化的編輯器似乎很奇怪. 非可視化的編輯器的例子

    可以舉出不少:如ed, sed和edlin(直到相當(dāng)近的一段時(shí)間內(nèi),它是DOS自帶的最后一個(gè)編輯器)

    等.

    vi是威廉.僑伊寫的,作為BSD UNIX的一部分. 后來(lái)AT&T也開始用vi, 于是標(biāo)準(zhǔn)UNIX也開始

    用vi了.

    1.1 - 關(guān)于vi有什么重大的交易嗎? 為什么大家都用它? 更進(jìn)一步說(shuō),為什么我要用它?

    vi是UNIX下面的缺省編輯器, 因此幾乎近來(lái)所有的UNIX都捆綁了vi(近來(lái)是指1984年左右).

    這意味著無(wú)論何時(shí)你跨平臺(tái)使用某種UNIX,你都知道在你指尖下面有一個(gè)強(qiáng)力的編輯器.為什么

    不是別的呢? vi是個(gè)強(qiáng)大的編輯器.同樣,一旦你了解了vi,你就能很快的編輯你的文件,因?yàn)樗?/p>

    非常能節(jié)省你的敲鍵次數(shù). 由于它在插入和命令兩種情況下使用不同的模式,它比大多數(shù)的不

    基于這種模式的編輯器要快. 而且,vi非常小(我機(jī)器上面的版本只有200K).還有,vi幾乎能做

    任何事,只要你知道如何使它做你想做的事.

    1.2 - 噢! 這聽起來(lái)不錯(cuò)! 有沒(méi)有理由不用vi?

    有. 有一個(gè)非常好的理由: vi稍微有些難學(xué), 如果你開始學(xué)的話,vi又慢又讓人痛苦,

    當(dāng)然,一旦你學(xué)會(huì)了, vi就快多了. 但是學(xué)習(xí)的過(guò)程很慢. 有人曾經(jīng)問(wèn)我, 如果vi是個(gè)比較

    易學(xué)的編輯器, 它是否直觀(intuitive)呢? 我一般這樣回答:"是的,我們有些人是這樣認(rèn)為.

    但是大多數(shù)人認(rèn)為我們瘋了."

    1.3 - vi能在多少不同的操作系統(tǒng)下面運(yùn)行?

    UNIX. 就是它. 盡管如此,還是有很多vi的變種運(yùn)行在不同的操作系統(tǒng)上. 我就在以下一些

    操作系統(tǒng)上用過(guò)vi: UNIX, DOS, OS/2, MAC SYSTEM 7.(后面有一個(gè)有關(guān)細(xì)節(jié)的列表)

    1.4 - 好吧, 你說(shuō)服了我. 我決定開始使用vi. 我該從哪兒開始?

    好吧, 狡猾的家伙. 關(guān)于vi有很多很好的書:大多數(shù)講UNIX的書至少有一章給了vi,而且

    有不少是專門講vi的書.我沒(méi)有什么偏愛. 所以你最好是問(wèn)問(wèn)你們那兒的vi高手們他們是從

    哪兒學(xué)來(lái)的. 還有,到處試. 用vi打開一個(gè)不重要的文檔(你的論文不象是個(gè)學(xué)vi的好實(shí)驗(yàn)品),

    然后再到處試. 我無(wú)法想象有人學(xué)習(xí)vi卻不花相當(dāng)多的時(shí)間去到處試試. 記住:如果你有些

    地方不明白了, 只要敲兩次鍵,你就又回到命令模式下了.

    我要提到的一點(diǎn)是,我想在這里提比較合適,就是如果要成為系統(tǒng)管理員或者其他對(duì)UNIX配置

    做什么修改的話,最好是學(xué)學(xué)ed或者ex,因?yàn)橛行┌姹镜腢NIX沒(méi)有把vi放在根分區(qū)里面,這樣你

    就可能無(wú)計(jì)可施了. ed是個(gè)不錯(cuò)的選擇.

    1.5 - vi有其他一些可用的變種嗎?

    只能列出一部分:STvi (STevie), elvis, vile, vim, 和nvi, xvi.

    elvis適用于:Amiga, DOS, OS/2,Unix, VMS, Atari.

    STevie適用于: Atari ST, DOS, Unix, Mac System 7.

    Mac System 7可以在很多info-mac的鏡象站點(diǎn)獲取,在/info-mac/text下.

    (例如ftp.hawaii.edu)

    nvi是將和BSD 4.4捆綁在一起的vi.

    vim適用于: Amiga, DOS, Mac System 7, Unix.

    Amiga, DOS,和源碼可以在以下站點(diǎn)換取:ftp.fu-berlin.de /misc/editors/vim

    Mac System 7可以在很多info-mac的鏡象站點(diǎn)獲取,在/info-mac/text下.

    (例如ftp.hawaii.edu)

    vile適用于: DOS, OS/2, Unix, VMS.

    xvi適用于: DOS, Unix.

    vi的變種之間很有很多差異.很多都改進(jìn)了vi,大多數(shù)都可以使用在這個(gè)文檔

    種列出的命令,但是有一些不同的地方.更進(jìn)一步的細(xì)節(jié),你可以參考這些變種

    附帶的相應(yīng)的文檔.

    2.0 - vi入門

    對(duì)vi的初學(xué)者來(lái)說(shuō),有些基本的提示.第一,任何時(shí)候,手頭都要有一份命令摘要.

    我們將在后面給出一個(gè)快速參考/命令摘要. 第二, 找一本vi方面的比較好的書.

    這個(gè)文檔不是學(xué)vi的最佳途徑(最起碼現(xiàn)在還不是),我不敢保證這個(gè)文檔能教會(huì)一個(gè)

    對(duì)vi一無(wú)所知的人, 而很多書已經(jīng)做到了這一點(diǎn). 但是,我們這里還是給出了不少

    提示. 對(duì)選擇書籍來(lái)說(shuō),有一個(gè)標(biāo)準(zhǔn)的原則:買之前一定要仔細(xì)閱讀. 要了解這本書

    對(duì)你是否有意義.確信它能在你練習(xí)vi的時(shí)候有用. 和其他的書做個(gè)比較 -- 不管怎樣,

    vi可能讓你感到非常莫名其妙, 而且你要確信這么一點(diǎn):是書讓你糊涂,而不是

    你低估了學(xué)vi的難度.

    還有, 找一些諸如"學(xué)vi"(vilearn),"vi向?qū)?(vitutor)之類的軟件來(lái)幫助你掌握

    vi的基本知識(shí).

    2.1 - 有什么游戲幫助我們學(xué)習(xí)vi嗎?

    這似乎很無(wú)聊, 但是事實(shí)上UNIX系統(tǒng)里面有不少游戲可以幫助你學(xué)習(xí)使用vi.這些幫助

    主要是一些基本知識(shí). 雖然我還不知道有哪個(gè)游戲可以幫你學(xué)習(xí)vi的所有命令, 但我

    確實(shí)知道有一些可以幫助你學(xué)習(xí)使用 hjkl來(lái)移動(dòng)光標(biāo). NetHack,一個(gè)類Rogue的游戲,

    就對(duì)這非常有幫助. 而且它是一個(gè)很大的游戲,能玩很長(zhǎng)一段時(shí)間. 我沒(méi)有貶低其他游戲

    的意思,這些游戲是: rogue, moria, omega, worm, snake.

    2.2 - 命令模式和插入模式有什么區(qū)別?

    vi將命令模式和插入模式區(qū)分開來(lái),這經(jīng)常被認(rèn)為是vi的一個(gè)大問(wèn)題,但往往這也被認(rèn)為是

    vi的優(yōu)勢(shì)所在. 理解其中的區(qū)別是掌握vi的關(guān)鍵.vi啟動(dòng)時(shí),開始處于命令模式;在這種模式

    下,我們可以在文件中到處移動(dòng),改變文本的某個(gè)特定區(qū)域, 剪切, 復(fù)制和粘貼文本,還有更

    多. 插入模式是指用戶可以真正插入文本.換句話說(shuō),命令模式是用來(lái)在文件中移動(dòng),而插入

    模式是用來(lái)在文件中鍵入文本.

    有些命令,例如: a, i, c, C, O, o和其他一些可以從命令模式切換到插入模式.

    鍵或者^(guò)C(CRTL+C)可以脫離插入模式而返回到命令模式.

    你要適應(yīng)這種差別. 它使得vi區(qū)別于其他的編輯器. 它也使你能在你的手不離開標(biāo)準(zhǔn)

    鍵盤做很多事情.

    2.3 - 等等,我的鍵盤沒(méi)有鍵,我該怎么辦?

    試試敲 ^[(CTRL+[). 如果你的鍵盤有一個(gè)鍵,再試試它.如果還不行,再試試^3.

    2.4 - 那些~s是什么東西?

    它們僅僅是用來(lái)讓你知道你的文檔末尾在哪兒.實(shí)際上它們并不在你的文檔里面,所以

    你用不著擔(dān)心它們.

    2.5 - 我無(wú)法習(xí)慣用 hjkl, 你有什么建議嗎?

    首先,如果你的終端設(shè)置正確而且你連接的也沒(méi)有問(wèn)題的話,你可以使用箭頭鍵.但是,

    如果你認(rèn)為你要經(jīng)常使用vi,那么最好是習(xí)慣使用 hjkl,因?yàn)樗鼈兦闷饋?lái)更快. 而且,

    有時(shí)候連接出問(wèn)題了,使得ESC序列都可能丟失了.(這樣你可能就無(wú)法使用箭頭鍵了--譯注)

    2.6 - 我如何才能不存盤就退出?

    :q!可以做到這一點(diǎn). 如果vi看起來(lái)凍住了,確信你沒(méi)有錯(cuò)敲了個(gè) ^S. 敲^Q可以解開^S.

    2.7 - 我怎樣插入一個(gè)文件?

    :r <文件名>

    例如,要插入文件/etc/motd, 可以敲 :r /etc/motd.

    這將把文件插入到光標(biāo)處.如果你在r前面指定了一個(gè)數(shù)字,那么這條命令將把文件插入

    到那個(gè)位置.

    2.8 - 我怎樣查找文本?

    /<文本>將向前查找, ?<文本>將向后查找. ??或者//將重復(fù)上次查找. 在UNIX下,這已經(jīng)

    是個(gè)可愛的標(biāo)準(zhǔn)用法了. 而且, 在vi中, n將查找文本下一次的出現(xiàn)位置. N重復(fù)上次查找,

    不過(guò)逆轉(zhuǎn)了查找的方向. 在查找中可以使用規(guī)范式.

    2.9 - 我怎樣搜索一個(gè)控制序列?

    /^V^<序列>

    ^V會(huì)告訴vi照字面理解下一個(gè)字符,不要把它看作是一條命令.

    2.10 - 我怎樣重新格式化文本?

    如果你的計(jì)算機(jī)有一個(gè)名叫fmt的程序, 你要做的僅僅是在命令模式下面敲!}fmt(記住,

    不要在前面加. 這可以重新格式化你的文件,從光標(biāo)所在的位置一直到當(dāng)前段落的結(jié)尾.

    如果你的機(jī)器里面沒(méi)有fmt這個(gè)程序, 你就得去找個(gè)類似的軟件了(我記得在公共域里面有

    不少這樣的程序,但是我對(duì)此了解不多)

    2.11 - 我怎樣復(fù)制文本?

    這有點(diǎn)復(fù)雜.把這節(jié)拿出來(lái),多看幾遍;還有,一定要多做實(shí)驗(yàn).

    "<字母>yy可以把一行文本拷貝到寄存器中(這里的寄存器是vi的術(shù)語(yǔ),指可以存放剪切和

    拷貝下來(lái)的東西的地方), <字母>里面的字母必須是a到z之間的一個(gè). "<字母>dd可以把一行

    剪切下來(lái)放到寄存器里面. 你可以在yy或者dd前面用數(shù)字指明要拷貝或者剪切的行數(shù).如果

    <字母>中的字母是大寫的話,意味著把文本插入到寄存器中已有的文本之前.

    "<字母>p把文本插入到光標(biāo)之后,"<字母>P把文本插入到光標(biāo)之前.如果寄存器中含有某

    一行的開頭或結(jié)尾,這一行將會(huì)被放到另一合適的行上. Y是yy的快捷方式. 還有, y$, yH,

    yM,等等,都是可以用的.d命令也是一樣的.如果要快速的剪切和粘貼, 你就無(wú)須指定寄存器

    了.如果這樣的話,你就不能往寄存器里面添加文本了.而且只要有一個(gè)刪除命令的話,寄存器

    中的東西就沒(méi)有了(包括x命令).

    舉例來(lái)說(shuō),如果要移動(dòng)上一段的話,你可以把光標(biāo)移到段落的開頭,敲"a13dd,再把光標(biāo)移到

    你想要放文本的地方,敲"ap,就可以把那段文本放到光標(biāo)所在的行后面.

    現(xiàn)在,大概你想要剪切和粘貼文本到不是行末尾的區(qū)域去.我們來(lái)看如何做到這一點(diǎn):我們

    可以使用 m<字母> 命令來(lái)標(biāo)記一個(gè)區(qū)域,這個(gè)字母可以和剪切/粘貼寄存器的字母相同,因?yàn)?/p>

    它們是保存在內(nèi)存中的不同位置. 然后,敲"<寄存器>`<字母>[yy或者dd], 這里的寄存器就是

    要保存文本的那個(gè)寄存器,<字母>是用來(lái)標(biāo)記的,yy和dd是你的操作.

    2.12 - 啊! 我剛才敲了一個(gè)dG,然后我的論文就沒(méi)有了! 我該怎么辦?

    (或者,我剛才犯了個(gè)錯(cuò)誤,我該怎么辦?)

    u可以撤消你剛才的操作.U可以撤消你對(duì)當(dāng)前行的修改(當(dāng)然,一行對(duì)于一篇論文來(lái)說(shuō)當(dāng)然

    很不夠了). :e!可以不保存修改而重新把你的文件調(diào)進(jìn)來(lái). 還有,你刪除的文本都保存在從

    0到9編號(hào)的寄存器里.所以,"p就可以把上第n次的刪除文本粘貼出來(lái).你可以按如下的

    方法迅速地查看所有刪除的文本. 先試一個(gè),不對(duì)的話,敲u,再試下一個(gè).(為加速這個(gè)過(guò)程,

    這時(shí)vi中的.命令和通常的用法不一樣了.它不是重復(fù)上次操作,而是試下一個(gè)寄存器,這樣

    你要做的無(wú)非就是: "1p u . u .,直到你撤消了你想撤消的刪除操作)

    2.13 - 我正在寫我的論文,被告知我必須將每一節(jié)都放在不同的文件里,我該怎么辦?

    :[m],[n]w <文件名>可以將從第m行到第n行之間的文本保存到<文件名>所指定的文件中.

    這種行序號(hào)方法幾乎在所有的:命令下都可以使用. 如果你用命令:[m],[n] w >><文件名>,

    這些文本將添加到文件的后面.

    2.14 - 所有的:命令都是怎樣處理的?

    :后面的命令都是從ex編輯器里面過(guò)來(lái)的. 這就給vi加入了很多靈活性,也使vi功能更強(qiáng)

    大. 例如, 有很多的方法可以用來(lái)查找和替換,它們有很多的類似地方(事實(shí)上,它們?cè)谀撤N

    意義上說(shuō)都是一樣的)

    3.0 - 怎樣查找和替換?

    有很多方法. 最簡(jiǎn)單的是:

    :s/old/new/g, 但是,這僅對(duì)當(dāng)前行起作用..., 所以,我們用

    :%s/old/new/g, 更一般的,我們還可以用

    :[范圍]s/old/new/[cg],這里,[范圍]是任意的行范圍,包括行號(hào),$(文件末尾),.(當(dāng)前行),

    %(當(dāng)前文件),或者兩個(gè)行號(hào)之間加個(gè)破折號(hào)(或者可以這樣: .,+5,這表示下面5行).[cgi]是

    c,g,i中間的一個(gè)或者什么也沒(méi)有.c告訴vi每次替換的時(shí)候要給提示,g是說(shuō)對(duì)所有一行中出現(xiàn)

    的地方都做替換.i則是指在查找時(shí)不區(qū)分大小寫.如果最后一個(gè)斜杠(/)后面沒(méi)有東西的話,那

    么vi只替換在行中第一次匹配的地方.

    我比較喜歡這樣做:

    :g/foobar/s/bar/baz/g, 這個(gè)命令首先搜尋foobar,然后把它變成foobaz. 它沒(méi)有改變

    jailbars, 而其他的一些命令可能會(huì)改變jailbars. 這是我的方法,但是可能比較難記.

    當(dāng)然,你還可以在查找的的時(shí)候使用正規(guī)式,以及在替換文本的時(shí)候使用其他一些命令.如果

    你在正規(guī)式里用\(和\)來(lái)剝離一個(gè)序列的話,你會(huì)發(fā)現(xiàn)你可以做很多好玩的事情.

    例如:

    :g/\(foo\)\(bar\)/s/\2/\1baz/g 將foobar替換成foobaz

    還有一些特殊的序列:

    & 所有查找時(shí)匹配到的東西

    \[1-9] 1到9號(hào)用\(和\)括起來(lái)的東西

    \u 下一個(gè)字符將被變成大寫.

    \U 以后的字符都變成大寫,直到遇到\e或\E

    \l 下一個(gè)字符將被變成小寫.

    \L 以后的字符都變成大寫,直到遇到\e或\E

    \[Ee] 更改大小寫的選擇區(qū)域的終點(diǎn)

    3.1 - 我怎樣在vi中運(yùn)行一個(gè)程序?

    :!命令 可以在vi中運(yùn)行程序. :sh會(huì)啟動(dòng)一個(gè)交互式的外殼(SHELL).在這個(gè)外殼

    里面, 如果你愿意,你還可以再次運(yùn)行vi. 當(dāng)你在編輯Makefiles和配置文件來(lái)編譯

    某個(gè)程序的時(shí)候,這可能比較有用. 這比:e優(yōu)越之處在于它無(wú)須保存文件,而且如果

    你退出外殼的時(shí)候,vi還回到原來(lái)的地方.(當(dāng)然,我還是建議你先保存一下文件)

    3.2 - 啊! 我正在寫我的論文, 系統(tǒng)崩潰了! 怎么辦?

    不要怕! 你會(huì)收到一封電子郵件,里面就是你的論文.敲入vi -r <文件名>

    (這個(gè)文件名就是系統(tǒng)崩潰時(shí)你正在編輯的文件)你就可以恢復(fù)出你的論文來(lái).只敲

    vi -r將把所有可能恢復(fù)的文件都列出來(lái).

    3.3 - 有沒(méi)有使vi對(duì)程序員更友好的竅門?

    :set ai可以讓vi自動(dòng)對(duì)齊.

    :set sw=#,#是移動(dòng)的寬度(shiftwidth),或者說(shuō)TAB鍵的寬度(tabwidth);你可以

    用<<或者>>命令來(lái)左移或右移某一行. 還有, 你可以使用 <%或>%來(lái)將{,(或[等符號(hào)

    括起來(lái)的文本都左移或右移;這時(shí)候,你必須把光標(biāo)放在這些符號(hào)({,(或[)上面.

    :set sm會(huì)在你敲},]或)顯示出對(duì)應(yīng)匹配的{,[或(來(lái).

    :set lisp會(huì)對(duì)lisp編程有些幫助. ()被移到s表達(dá)式(s-expressions)外面,如果

    原子(atoms)沒(méi)有停止則{}將被移走.

    3.4 - 宏 -- 我怎樣寫宏?

    :map  , 其中最多10個(gè)字符,最多100個(gè)字符. 以后,如果

    你敲了,vi就會(huì)用來(lái)取代它.所有的宏都是在命令模式下開始的,但是可以

    在你想在的模式下終止. 記住,在你想用的控制字符前面加上^V.

    :unmap 將刪除這個(gè)宏. :map!  使得插入到文檔

    中去.

    3.5 - 我怎樣將一個(gè)功能鍵定義成一個(gè)宏?

    如果是#n,n是0-9之間的一個(gè)數(shù),那么這個(gè)宏就映射成某一個(gè)功能鍵了.(你

    可以試一下F1-F10之間的鍵--譯者)

    3.6 - 有沒(méi)有辦法縮寫文本?

    當(dāng)然了. 這可是vi呀,它能做任何事情!

    :ab email ellidz@midway.uchicago.edu 可以在你敲完email后,把那個(gè)沒(méi)有縮寫

    的文本插入到文件中. :una email取消縮寫.

    3.7 - 我怎樣在當(dāng)前文檔中做拼寫檢查?

    這兒有一個(gè)宏可以做到這一點(diǎn). 這些應(yīng)該放在你的.exrc文件中(后面我們將對(duì).exrc

    進(jìn)一步討論). 它是一個(gè)相當(dāng)簡(jiǎn)單的宏. 它僅僅是調(diào)用ispell來(lái)處理當(dāng)前文件.當(dāng)然,你

    的系統(tǒng)里面一定得有ispell這個(gè)程序. 使用它的時(shí)候,只需要敲個(gè)V鍵就行了(因?yàn)関i并

    沒(méi)有用V,所以V是一個(gè)比較合適的鍵)

    map V :w^M:!ispell % ^M:e!^M^M

    第二個(gè)^M使你在拼寫檢查完之后無(wú)須敲回車就可以到vi中.

    (譯注, 在我的系統(tǒng)里,沒(méi)有ispell,只有spell,我用它替換了ispell,工作的不錯(cuò);還有,

    ^M不是兩個(gè)字符,而是一個(gè)字符,通過(guò)^V^M敲進(jìn)去的;另外,我個(gè)人認(rèn)為第二個(gè)^M還是不要

    的好,因?yàn)橹苯踊氐絭i后你就無(wú)法看到拼寫檢查的結(jié)果了)

    3.8 - 我手頭有一個(gè)硬拷貝的終端, 我還能用vi嗎?

    好了,好了. 我并認(rèn)為有人會(huì)真的問(wèn)這個(gè)問(wèn)題.這個(gè)問(wèn)題太偏了,我們大可不必理

    它.(而且,它回答了一個(gè)非常普通的問(wèn)題)

    vi啟動(dòng)的時(shí)候處于一種特殊的模式下面,叫做"開放模式"; 在這種狀態(tài)下,事情或多或少

    的有些不同. 刪除的字符在你面前顯示成一些\',vi會(huì)認(rèn)為你的終端窗口只有一行. ^r

    可以把當(dāng)前行重新輸出. z則把當(dāng)前行周圍的窗口重畫一遍.

    3.9 - 好了,是不是處在開放模式下的原因呀?! 但是我現(xiàn)在沒(méi)有用硬拷貝終端,它還是在開放

    模式呀?

    這兒的問(wèn)題就是vi沒(méi)有認(rèn)出你用的終端的類型. 于是它假定你有的是個(gè)最爛的終端,

    所以它決定依然處在開放模式下.這似乎沒(méi)什么用處.因?yàn)闆](méi)有多少人喜歡開放模式,但是開放

    模式還是需要知道你的終端的一些最起碼的信息的.

    現(xiàn)在,我們來(lái)看如何解決這個(gè)問(wèn)題.我們有可能把它分成幾種特殊的情形,但是,一般情況下,

    這并沒(méi)有用處. 如果你直到你的終端的類型, 你可以在UNIX提示符下面設(shè)置終端類型(在CSH

    及其變種下面,使用命令setenv TERM <終端類型>;在SH及其變種下面,使用命令TERM=<終端類型>;

    export TERM)

    最好你能把上面的命令寫在.profile文件或者.cshrc文件里面,這樣你一登錄它就自動(dòng)地給

    你設(shè)置好了.(當(dāng)然,你應(yīng)該知道如何使用ed,或者你能在UNIX提示符下面設(shè)置好終端類型以便能

    使用vi, 這樣你才有可能去編輯這些文件)

    如果你確實(shí)不知道你地終端類型,試一試vt100.現(xiàn)在大多數(shù)地終端或者終端仿真器都能仿真

    vt100. 如果這還不能生效的話,你只好去找個(gè)高手來(lái)幫你了.

    4.0 - vi檔案的在線幫助在哪兒?

    有一個(gè)vi的FAQ,其中列出了vi檔案的所有在線文件. 同時(shí)它還列出了這些文檔

    的鏡象站點(diǎn). 最主要的一個(gè)地址是alf.uib.no,但是這些文檔在很多很多地地方

    都保存著. vi-archive faq把它們都給列出來(lái)了.你在下載這些文件之前一定要

    核對(duì)一下這個(gè)FAQ.因?yàn)楹苡锌赡苡幸粋(gè)站點(diǎn)比去挪威的站點(diǎn)更近更快些.

    一個(gè)鏡象站點(diǎn)是cs.uwp.edu/pub/vi, 另一個(gè)是monu6.clearcase/" target="_blank" >cc.monash.edu.au/pub/Vi,

    這些站點(diǎn)上有很多有關(guān)vi的文件,還有一些vi的變種版本;當(dāng)然,UCB版本的vi是

    肯定有的, 還有許多的宏.

    5.0 - 好玩的vi訣竅,好玩的宏

    這一節(jié)主要講述一些無(wú)聊的訣竅和一些無(wú)聊的宏.事實(shí)上,任何vi的訣竅和宏我們

    都?xì)g迎,只要它們不是過(guò)分冗長(zhǎng). 如果有人向我建議而我也認(rèn)為確實(shí)值得加的話,

    我會(huì)考慮加進(jìn)去的.

    5.1 - 好玩的vi訣竅

    xp 刪除光標(biāo)下的字符,再把粘貼到后面去.換句話說(shuō),它交換了當(dāng)前兩個(gè)字符

    的位置.

    ddp 和xp類似,不過(guò)是交換兩行的位置.

    uu 撤消和重復(fù)上次所做的修改.(這可以使你不改變什么東西就可以到你上次所

    做的修改處)

    5.2 - 好玩的宏

    和垂直上方的字符交換位置

    map * kxjphxkP

    折行

    map g $80|F r

    (譯注,我對(duì)這條宏表示疑問(wèn)!)

    改變大多數(shù)單詞的大小寫

    map v ywmno:s/./\~/g

    (譯注,這條好象也不大對(duì)!)

    在當(dāng)前的單詞周圍加上`和'

    map *` i`'

    在當(dāng)前的單詞周圍加上'和'

    map *' i''

    在當(dāng)前的單詞周圍加上"和"

    map *" i""

    (這幾條也太無(wú)聊了吧--譯注)

    在當(dāng)前的單詞周圍加上``和``

    map! `` `'

    (咦,好象又有問(wèn)題?--譯注)

    從光標(biāo)處把當(dāng)前行分開,在下一行開頭加上一個(gè)>號(hào)(例如,引用USENET).如果加上了單詞的折行

    功能那么最后一個(gè)單詞可能被折在第一行.

    map g may0O`ay$:s/./ /g

    (不對(duì)吧--譯注)

    插入一個(gè)字符

    map g i$^[r

    6.0 - 依字母順序的vi快速參考

    ... 是指有些東西需要在命令之前或之后指明.這通常是說(shuō)光標(biāo)的移動(dòng)鍵

    (h,j,k,l,w,b等等)或者是指行號(hào).

    # (這里#代表一個(gè)數(shù)字) 執(zhí)行n次后面的命令...

    : 進(jìn)入ex模式

    ) 下一句

    ( 上一句

    } 下一段

    { 上一段

    ]] 下一節(jié)

    [[ 上一節(jié)

    0 行的開頭

    $ 行的末尾

    ^ 行的第一個(gè)非空白字符

    + 下一行的開頭

    - 上一行的開頭

    (空格) 下一個(gè)字符

    (回車) 下一行

    / 向前搜索

    ? 向后搜索

    % 查找當(dāng)前小(中,大)括號(hào)的匹配字符

    , 逆向重復(fù)上一個(gè)f,F,t或T操作

    ; 重復(fù)上一個(gè)f,F,t或T操作

    . 重復(fù)上一個(gè)操作

    ` 轉(zhuǎn)到標(biāo)記處

    ' 轉(zhuǎn)到標(biāo)記所在行的開頭

    `` 查找前回到上一個(gè)做標(biāo)記的地方

    '' 查找前回到上一個(gè)做標(biāo)記所在行的開頭

    ~ 切換字符的大小寫

    " 保存到寄存器中

    !! 重復(fù)上一次SHELL命令

    ! 把后面的文本送給命令, 取代輸出(例如, !}fmt把當(dāng)前的段落

    送給命令fmt處理,然后用fmt返回的東西替換輸出.)

    >> 右移當(dāng)前段落一個(gè)移動(dòng)寬度(shiftwidth)

    << 左移當(dāng)前段落一個(gè)移動(dòng)寬度(shiftwidth)

    >% 從當(dāng)前到匹配小(中,大)括號(hào)之間的文本右移

    <% 從當(dāng)前到匹配小(中,大)括號(hào)之間的文本左移

    (似乎漏了一個(gè)符號(hào)|, 移動(dòng)到某一列----譯注)

    a 在當(dāng)前位置之后添加

    A 在當(dāng)前行的末尾添加

    ^a 沒(méi)有使用

    b 上一個(gè)單詞的開頭

    B 上一個(gè)單詞的開頭,忽略標(biāo)點(diǎn)符號(hào)

    ^b 上移一屏

    c 覆蓋...

    C 覆蓋到行末尾

    ^c 終止插入模式,在命令模式?jīng)]有用

    d 刪除...

    D 刪除到行末尾

    ^d 下移半屏,如果在插入模式下則移到上一個(gè)移動(dòng)寬度(ShiftTab)處

    e 單詞的末尾

    E 單詞的末尾,忽略標(biāo)點(diǎn)符號(hào)

    ^e 屏幕下卷一行

    f 查找...

    F 向后查找...

    ^f 下移一屏

    g 未用

    G ...跳至[缺省是到文件末尾]

    ^g 顯示狀態(tài)欄

    h 左移

    H 屏幕上的第一行

    ^h 在插入模式下是退格,命令模式下是左移

    i 在當(dāng)前的位置前面插入

    I 在本行的第一個(gè)非空白字符前面插入

    ^i 插入模式下是制表鍵,命令模式下未用

    j 下移

    J 把下一行合并到本行

    ^j 命令模式下是下移,插入模式下是建一個(gè)新行

    k 上移

    K 未用

    ^k 未用

    l 右移

    L 屏幕中的最后一行

    ^l 重繪屏幕

    m 把當(dāng)前位置標(biāo)記到寄存器中

    M 屏幕的中間行

    ^m 回車

    n 重復(fù)上次查找

    N 逆向重復(fù)上次查找

    ^n 命令模式下是下移

    o 在當(dāng)前行的下面建一個(gè)新行

    O 在當(dāng)前行的上面建一個(gè)新行

    ^o 未用

    p 在當(dāng)前行的下面粘貼

    (譯注--應(yīng)為在當(dāng)前位置的后面粘貼)

    P 在當(dāng)前行的上面粘貼

    (譯注--應(yīng)為在當(dāng)前位置的前面粘貼)

    ^p 命令模式下是上移

    q 未用

    Q 退出并且啟動(dòng)ex

    ^q 未用

    r 覆蓋當(dāng)前的字符

    R 在插入模式下一直覆蓋字符

    ^r 在命令模式下面重繪屏幕

    s 替換

    S 替換整行

    t 到...

    T 向后到...

    ^t 移到下一個(gè)移動(dòng)寬度(shifttab)處

    u 撤消上一次操作

    U 撤消對(duì)本行的所有修改

    ^u 上移半屏

    v 未用

    V 未用

    ^v 未用

    w 下一個(gè)單詞的開頭

    W 下一個(gè)單詞的開頭,忽略標(biāo)點(diǎn)符號(hào)

    ^w 命令模式下未用,在插入模式下是到上一個(gè)單詞的開頭處

    x 刪除當(dāng)前字符

    X 刪除前一個(gè)字符

    ^x 未用

    y 復(fù)制...

    Y 復(fù)制整行

    ^y 屏幕上卷一行

    z 重新配置當(dāng)前行周圍的屏幕

    ZZ 保存之后退出

    ^z 未用

    (譯注--在命令模式下,^z執(zhí)行了UNIX暫停操作)

    6.1 - 命令模式的輸入選項(xiàng)(:命令)

    (注: 這不是一個(gè)規(guī)范的列表,, 我只是列出了一些最重要的命令)

    :r <文件> 把<文件>讀入到當(dāng)前文檔

    :r !<命令> 把<命令>的輸出插入到當(dāng)前文本中

    :nr <文件> 把<文件>插入到第n行

    :!<命令> 運(yùn)行<命令>,然后返回

    :sh 轉(zhuǎn)到SHELL

    :so <文件> 讀取<文件>,再執(zhí)行文件里面的命令

    (譯注--文件中的命令應(yīng)該都是一些ex命令)

    保存之后退出

    :wq 保存之后退出

    :l1,l2w <文件>把第l1和第l2行之間的文本寫到<文件>中去,如果沒(méi)有指定<文件>,

    vi就假定是當(dāng)前文件,如果沒(méi)有指定l1,l2,就假定是整個(gè)文件(就成了:w)

    :w >> <文件> 添加到<文件>末尾. 也可以使用行號(hào)

    :w! 覆蓋當(dāng)前文件

    :q 退出

    :q! 不存盤就退出

    :e <文件> 不離開vi編輯<文件>

    :e! 重新編輯當(dāng)前文件,忽略所有的修改

    :n 編輯下一個(gè)文件

    :e +n <文件> 從第n行開始編輯<文件>,如果超過(guò)了末尾,就從末尾開始編輯

    :e# 編輯替換文件(如果使用了命令:e<文件>,替換文件就指的是原始文件)

    :args 顯示所有要編輯的文件

    :rew 重新回到第一個(gè)編輯的文檔

    :map m n 創(chuàng)建一個(gè)宏(使 m 做 n)

    :map! m n 創(chuàng)建一個(gè)插入模式的宏(使 m 做 n)

    :unmap m 刪除宏m

    :unmap! m 刪除插入模式的宏m

    :ab <1> <2> 縮寫,敲<1>的時(shí)候用<2>取代

    :unab <1> 取消縮寫<1>

    :set <選項(xiàng)> 設(shè)置<選項(xiàng)>...

    6.2 - 設(shè)置選項(xiàng)(set)

    可以使用括號(hào)中的縮寫形式. 語(yǔ)法:

    :set <選項(xiàng)> <參數(shù)> (如果需要參數(shù)的話)

    也可以在一行中指定多個(gè)選項(xiàng)

    :set <選項(xiàng)>? 顯示出當(dāng)前這個(gè)選項(xiàng)的參數(shù)值

    :set all 則顯示所有的選項(xiàng)值

    對(duì)那些無(wú)須參數(shù)的選項(xiàng)來(lái)說(shuō),使用:set no<選項(xiàng)>就可以把它給關(guān)了

    選項(xiàng): 缺省值: 含義:

    autoindent (ai) noai 使新行自動(dòng)縮進(jìn),和上(下)行的位置對(duì)齊

    autoprint (ap) ap 每條命令之后都顯示出修改之處

    autowrite (aw) noaw 在:n,:!命令之前都自動(dòng)保存文件

    beautify (bf) nobf 在輸入的時(shí)候忽略所有的控制字符

    (除了制表鍵(tab),換行(newline),進(jìn)紙(formfeed))

    directory= (dir=) /tmp 存放緩沖區(qū)的目錄名

    edcompatible noedcompatible 在替換的時(shí)候使用類ed的用法

    errorbells (eb) errorbells 出錯(cuò)的時(shí)候響鈴

    exrc (ex) noexrc 允許在主目錄(home)外面之外放.exrc文件

    hardtabs= (ht=) 8 設(shè)置硬制表的邊界

    ignore case (ic) noic 正規(guī)式里忽略大小寫

    lisp nolisp 打開lisp模式

    list nolist 顯示所有的制表鍵和行的結(jié)尾

    magic magic 可以使用更多的正規(guī)表達(dá)式

    mesg mesg 允許向終端發(fā)送消息

    number (nu) nonumber 顯示行號(hào)

    open open 允許開放和可視化

    optimize (opt) optimize 優(yōu)化吞吐量,打印時(shí)不發(fā)回車

    paragraphs= (para=) IPLPPPQPPLIbp 設(shè)置{ & }的分界符

    prompt prompt 命令模式下的輸入給出:的提示符

    readonly (ro) noro 除非用!號(hào)否則不準(zhǔn)保存文件

    redraw noredraw 當(dāng)編輯的時(shí)候重繪屏幕

    remap remap 允許宏指向其他的宏

    report= 5 如果影響的行數(shù)>這個(gè)數(shù)的話就報(bào)告

    scroll 1/2 window 下卷屏幕時(shí)滾動(dòng)屏幕的數(shù)目,

    同樣這也是z命令輸出的行數(shù)(z 輸出2倍滾屏的大小)

    sections= SHNHH HU 定義節(jié)的末尾(當(dāng)使用命令[[ 和 ]] 時(shí))

    shell= (sh=) /bin/sh 缺省的SHELL,如果設(shè)置了環(huán)境變量SHELL的話,就使用變量

    shiftwidth= (sw=) 8 當(dāng)使用移動(dòng)(shift)命令時(shí)移動(dòng)的字符數(shù)

    showmatch (sm) nosm 顯示{, }, (, , [, 或者 ] 的匹配情況

    showmode noshowmode 顯示你處在什么模式下面

    slowopen (slow) 插入之后不要立刻更新顯示

    tabstop= (ts=) 8 設(shè)置制表停止位(tabstop)的長(zhǎng)度

    taglength= (tl=) 0 重要標(biāo)記的字符個(gè)數(shù)(0表示所有的字符)

    tags= tag, /usr/lib/tags 定義包含標(biāo)記的文件路徑

    term= 設(shè)置終端類型

    terse noterse 顯示簡(jiǎn)短的錯(cuò)誤信息

    timeout (to) timeout 一秒鐘后鍵盤映射超時(shí)

    ttytype= 設(shè)置終端類型

    warn warn 顯示"No write since last change"信息

    window= (w=) 可視模式下窗口的行數(shù)

    wrapmargin= (wm=) 0 右邊距,大于0的話最右邊的單詞將折行,留出n個(gè)空白位置

    wrapscan (ws) ws 查找到文件尾后再重頭開始

    writeany (wa) nowa 可以保存到任意一個(gè)文件去

    (譯注--這些選項(xiàng)在各種vi版本中都基本上大同小異,以SunOS帶的vi為例,它沒(méi)有這里列出來(lái)的open選項(xiàng),

    scroll的參數(shù)值也不同,還多出來(lái)一些選項(xiàng),如flash,modelines,novice,tagstack等等)

    7.0 - 建立 .exrc文件

    所有命令輸入模式下的命令(即 :命令)都可以在.exrc文件中使用,在.exrc中的命令在啟動(dòng)vi的時(shí)候自動(dòng)

    加載.尤其是源命令(so),縮寫(ab)和宏定義都可以用.在.exrc中不允許有空行.以"開頭的一行vi將把它當(dāng)成

    注釋.

    7.1 - .exrc文件的樣本

    以下的.exrc文件是一個(gè)實(shí)際的例子, 我自己的. 因此,它就沒(méi)有有些人想象的那樣設(shè)置很多的選項(xiàng).即便

    如此,它還是給出一些基本的概念,而且它也相當(dāng)易懂.

    首先,記住你無(wú)須在命令前面加:號(hào),因?yàn)樗侨笔【吞砑恿说?

    "譯注--以下是.exrc文件中的內(nèi)容,為真實(shí)起見,而且事實(shí)上也相當(dāng)淺顯,我沒(méi)有翻譯其中的注釋

    " set wordwrap 9 characters from the right

    set wm=9

    " show matching parenthesis. When },), or ] is hit, show the opening

    " {,(, or [ that matches it.

    set sm

    " set the shell to be /usr/local/bin/tcsh

    set sh=/usr/local/bin/tcsh

    " a few abbreviations

    " this makes -l automatically become -Larry, and zidlle to be my

    " name and email address.

    ab zidlle E. Larry Lidz - ellidz@midway.uchicago.edu

    ab -l -Larry

    " uppercase V will run ispell -x (-x tells it not to save backups) on current

    " file

    map V :w

    " K will center the line... (this doesn't work on SunOS -- ??)

    map K :s/^[ ]*//

    " v will reformat the current paragraph

    map v {0!}fmt

    " q runs a program to lock my terminal

    map q :!lock2

    " Splits a line in two at current cursor location, puts a > at the

    "beginning of the line - useful for Usenet/email

    map g may0O`ay$:s/./ /g

    8.0 - vi的bug

    我很想說(shuō)vi中沒(méi)有bug,但很不幸,它不是這樣的. 這些bug都是初始版本vi中的,

    它其他的一些變種就不一定有.

    例如 _宏有時(shí)就運(yùn)行的有問(wèn)題.

    9.0 - 術(shù)語(yǔ)表

    如果有人提議說(shuō)某個(gè)術(shù)語(yǔ)他不明白,我們將更新這個(gè)術(shù)語(yǔ)表.如果你有什么建議,

    請(qǐng)一定要告訴我.

    命令模式 command mode

    命令模式是說(shuō)我們?cè)诖四J较旅婵梢韵騰i發(fā)命令(包括光標(biāo)移動(dòng),編輯命令等等)

    ed

    UNIX里面一個(gè)非可視化的編輯器

   

    escape鍵. 鍵盤上標(biāo)記為escape(ESC)的一個(gè)鍵.有時(shí)候^[可以起到相同的作用.

    如果沒(méi)有escape鍵,你可以試試Meta鍵

    ex

    UNIX下的一個(gè)編輯器.所有vi中的:命令都是送給它處理的

    插入模式 insert mode

    插入模式是指我們可以在此模式下面鍵入文本.

    宏 macro

    宏是一些鍵的組合起來(lái)的快捷方式.例如,某個(gè)宏允許我們只敲一個(gè)鍵就可以執(zhí)行

    好幾個(gè)不同的命令.

    開放模式 open mode

    開始模式是說(shuō)vi啟動(dòng)的時(shí)候不能確定你的終端類型,或者它肯定你的是一個(gè)硬的或

    電子管的終端

    正規(guī)表達(dá)式 regular expressions (RegEx)

    正規(guī)表達(dá)式,通?s寫為"RegEx",是一些關(guān)鍵字的集合,它允許用戶在查找的時(shí)候有更大的

    控制力度. RegEx是在UNIX下面用的,但是在很多程序中也用到了它.

    sed

    流-行式的編輯器.它沒(méi)有界面,所有命令都是通過(guò)命令行的形式給出的.

    vi

    就是這個(gè)FAQ討論的編輯器

    rom98 回復(fù)于:2003-02-10 20:52:48很好!

    hmkart 回復(fù)于:2003-02-11 09:22:33經(jīng)典,收藏!

    mjwaishelley 回復(fù)于:2003-02-11 11:33:30收,精華區(qū),

[轉(zhuǎn)帖] vi 命令常見問(wèn)題解答Windows系統(tǒng)

電腦資料

[轉(zhuǎn)帖] vi 命令常見問(wèn)題解答Windows系統(tǒng)》(http://www.msguai.com)。。。。。。

    cxyzl0 回復(fù)于:2003-02-11 11:51:06經(jīng)典,收藏!

    thank you!

    cxyzl0 回復(fù)于:2003-02-11 11:51:32經(jīng)典,收藏!

    thank you!

    sleuthyt 回復(fù)于:2003-02-11 11:53:06這東東,我收了。

    guest_client 回復(fù)于:2003-07-03 17:39:10請(qǐng)問(wèn),我用vi 編輯文件時(shí),在存盤退出時(shí)執(zhí)行:wq,有提示"/bin/sh:沒(méi)有找到命令",,如何解決,,SCO UNIX下,除了VI ,,還有什么在字符模式下的編輯器????再線等。。。

    bf1720 回復(fù)于:2003-07-04 21:45:33

    這讓我使用vi更方便了

    stanlee 回復(fù)于:2003-07-05 16:13:45很好!講的很細(xì)。

    收下拉!

    Air_Fish 回復(fù)于:2003-08-27 18:59:52OK! GOOD!

    flightshi 回復(fù)于:2003-09-08 20:30:02我有個(gè)問(wèn)題,在每行中都插入,類似Ultraedit的列模式怎么用?今天找了一天,沒(méi)有找到。

    yangl76 回復(fù)于:2003-09-08 21:58:03尋他千擺渡

   

    原文轉(zhuǎn)自:http://www.ltesting.net

最新文章