<thead id="kqoxr"></thead>
<blockquote id="kqoxr"></blockquote>
<legend id="kqoxr"><li id="kqoxr"></li></legend>
    1. <sub id="kqoxr"></sub>
      1. <blockquote id="kqoxr"><i id="kqoxr"><noscript id="kqoxr"></noscript></i></blockquote>
        <pre id="kqoxr"></pre>

        91午夜福利在线观看精品,亚洲综合色婷婷中文字幕,亚洲日本欧洲二区精品,竹菊影视欧美日韩一区二区三区四区五区,亚洲色在线V中文字幕,国产精品毛片av999999,精品视频不卡免费观看,亚洲全乱码精品一区二区

        [轉帖] vi 命令常見問題解答Windows系統 -電腦資料

        電腦資料 時間:2019-01-01
        【m.r9876.cn - 電腦資料】

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

            vi 命令常見問題解答

            作者:譯者Elale

            [vi-faq中文版]

            0.0 - 引言 -- 我怎樣用這個FAQ

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

            學者的問題,一些對vi沒有很多經驗的人也經常問這些問題.這里面包括諸如“命令模式和插入

            模式之間的區別”,以及“我怎樣拷貝和粘貼”之類的問題.第3節是面向vi的中級用戶的,它從

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

            節還包括了一個vi的快速參考,有一個規范的vi命令列表.再下面,是一個有關“:set”命令的

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

            我們已經在一個運行SunOS和UCB版本vi的機器上驗證了快速參考.除了SunOS帶的vi外,

            每個命令都可以在系統V和UCB版本vi運行,但是我個人并沒有驗證這一點.

            除非我們在文檔中指明,缺省我們假定你處在命令模式下.

            我們還嘗試保留盡可能多的術語,因為在原始的vi文檔中使用了這些術語,盡管我可能

            忘了它的本來含義.

            0.1 - 索引

            第一個文件:

            0.0 - 引言 -- 我怎樣用這個FAQ?

            0.1 - 索引

            0.2 - 我可以散發這個FAQ嗎?

            0.3 - 你能為這個FAQ做什么?

            1.0 - 什么是vi?

            1.1 - 關于vi有什么重大的交易嗎? 為什么大家都用它? 更進一步說,為什么我要用它?

            1.2 - 噢! 這聽起來不錯! 有沒有理由不用vi?

            1.3 - vi能在多少不同的操作系統下面運行?

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

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

            2.0 - vi入門

            2.1 - 有什么游戲幫助我們學習vi嗎?

            2.2 - 命令模式和插入模式有什么區別?

            2.3 - 等等,我的鍵盤沒有鍵,我該怎么辦?

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

            2.5 - 我無法習慣用 hjkl, 你有什么建議嗎?

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

            2.7 - 我怎樣插入一個文件?

            2.8 - 我怎樣查找文本?

            2.9 - 我怎樣搜索一個控制序列?

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

            2.11 - 我怎樣復制文本?

            2.12 - 啊! 我剛才敲了一個dG,然后我的論文就沒有了! 我該怎么辦?

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

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

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

            3.0 - 怎樣查找和替換?

            3.1 - 我怎樣在vi中運行一個程序?

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

            3.3 - 有沒有使vi對程序員更友好的竅門?

            3.4 - 宏 -- 我怎樣寫宏?

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

            3.6 - 有沒有辦法縮寫文本?

            3.7 - 我怎樣在當前文檔中做拼寫檢查?

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

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

            開放模式呀?

            第二個文件:

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

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

            5.1 - 好玩的vi訣竅

            5.2 - 好玩的宏

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

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

            6.2 - 設置選項(set)

            7.0 - 建立 .exrc文件

            7.1 - .exrc文件的樣本

            8.0 - vi的漏洞

            9.0 - 術語表

            10.0 - 關于vi的參考書目

            0.2 - 我可以散發這個FAQ嗎?

            可以!只要你沒有對它做任何修改,或者用它來賺錢.

            0.3 - 你能為這個FAQ做什么?

            首先, 把你發現的錯誤告訴我. 如果你有什么建議我們也很歡迎. 你認為還不清楚的地方

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

            還有, 使用vi! (Spread the word) 我很抱歉我無法將所有對這個FAQ有貢獻的人都列出

            來, 因為許許多多的人都給過我建議和幫助,如果我將他們都列出來的話,那么恐怕這張貢獻

            者的清單將和這個文檔本身一樣長了.

            1.0 - 什么是vi?

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

            (相對于非可視化的編輯器來說)?可視化的編輯器就是可以讓你在編輯文本的時候看到它們.

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

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

            等.

            vi是威廉.僑伊寫的,作為BSD UNIX的一部分. 后來AT&T也開始用vi, 于是標準UNIX也開始

            用vi了.

            1.1 - 關于vi有什么重大的交易嗎? 為什么大家都用它? 更進一步說,為什么我要用它?

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

            這意味著無論何時你跨平臺使用某種UNIX,你都知道在你指尖下面有一個強力的編輯器.為什么

            不是別的呢? vi是個強大的編輯器.同樣,一旦你了解了vi,你就能很快的編輯你的文件,因為它

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

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

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

            1.2 - 噢! 這聽起來不錯! 有沒有理由不用vi?

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

            當然,一旦你學會了, vi就快多了. 但是學習的過程很慢. 有人曾經問我, 如果vi是個比較

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

            但是大多數人認為我們瘋了."

            1.3 - vi能在多少不同的操作系統下面運行?

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

            操作系統上用過vi: UNIX, DOS, OS/2, MAC SYSTEM 7.(后面有一個有關細節的列表)

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

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

            有不少是專門講vi的書.我沒有什么偏愛. 所以你最好是問問你們那兒的vi高手們他們是從

            哪兒學來的. 還有,到處試. 用vi打開一個不重要的文檔(你的論文不象是個學vi的好實驗品),

            然后再到處試. 我無法想象有人學習vi卻不花相當多的時間去到處試試. 記住:如果你有些

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

            我要提到的一點是,我想在這里提比較合適,就是如果要成為系統管理員或者其他對UNIX配置

            做什么修改的話,最好是學學ed或者ex,因為有些版本的UNIX沒有把vi放在根分區里面,這樣你

            就可能無計可施了. ed是個不錯的選擇.

            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的鏡象站點獲取,在/info-mac/text下.

            (例如ftp.hawaii.edu)

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

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

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

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

            (例如ftp.hawaii.edu)

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

            xvi適用于: DOS, Unix.

            vi的變種之間很有很多差異.很多都改進了vi,大多數都可以使用在這個文檔

            種列出的命令,但是有一些不同的地方.更進一步的細節,你可以參考這些變種

            附帶的相應的文檔.

            2.0 - vi入門

            對vi的初學者來說,有些基本的提示.第一,任何時候,手頭都要有一份命令摘要.

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

            這個文檔不是學vi的最佳途徑(最起碼現在還不是),我不敢保證這個文檔能教會一個

            對vi一無所知的人, 而很多書已經做到了這一點. 但是,我們這里還是給出了不少

            提示. 對選擇書籍來說,有一個標準的原則:買之前一定要仔細閱讀. 要了解這本書

            對你是否有意義.確信它能在你練習vi的時候有用. 和其他的書做個比較 -- 不管怎樣,

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

            你低估了學vi的難度.

            還有, 找一些諸如"學vi"(vilearn),"vi向導"(vitutor)之類的軟件來幫助你掌握

            vi的基本知識.

            2.1 - 有什么游戲幫助我們學習vi嗎?

            這似乎很無聊, 但是事實上UNIX系統里面有不少游戲可以幫助你學習使用vi.這些幫助

            主要是一些基本知識. 雖然我還不知道有哪個游戲可以幫你學習vi的所有命令, 但我

            確實知道有一些可以幫助你學習使用 hjkl來移動光標. NetHack,一個類Rogue的游戲,

            就對這非常有幫助. 而且它是一個很大的游戲,能玩很長一段時間. 我沒有貶低其他游戲

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

            2.2 - 命令模式和插入模式有什么區別?

            vi將命令模式和插入模式區分開來,這經常被認為是vi的一個大問題,但往往這也被認為是

            vi的優勢所在. 理解其中的區別是掌握vi的關鍵.vi啟動時,開始處于命令模式;在這種模式

            下,我們可以在文件中到處移動,改變文本的某個特定區域, 剪切, 復制和粘貼文本,還有更

            多. 插入模式是指用戶可以真正插入文本.換句話說,命令模式是用來在文件中移動,而插入

            模式是用來在文件中鍵入文本.

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

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

            你要適應這種差別. 它使得vi區別于其他的編輯器. 它也使你能在你的手不離開標準

            鍵盤做很多事情.

            2.3 - 等等,我的鍵盤沒有鍵,我該怎么辦?

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

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

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

            你用不著擔心它們.

            2.5 - 我無法習慣用 hjkl, 你有什么建議嗎?

            首先,如果你的終端設置正確而且你連接的也沒有問題的話,你可以使用箭頭鍵.但是,

            如果你認為你要經常使用vi,那么最好是習慣使用 hjkl,因為它們敲起來更快. 而且,

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

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

            :q!可以做到這一點. 如果vi看起來凍住了,確信你沒有錯敲了個 ^S. 敲^Q可以解開^S.

            2.7 - 我怎樣插入一個文件?

            :r <文件名>

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

            這將把文件插入到光標處.如果你在r前面指定了一個數字,那么這條命令將把文件插入

            到那個位置.

            2.8 - 我怎樣查找文本?

            /<文本>將向前查找, ?<文本>將向后查找. ??或者//將重復上次查找. 在UNIX下,這已經

            是個可愛的標準用法了. 而且, 在vi中, n將查找文本下一次的出現位置. N重復上次查找,

            不過逆轉了查找的方向. 在查找中可以使用規范式.

            2.9 - 我怎樣搜索一個控制序列?

            /^V^<序列>

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

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

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

            不要在前面加. 這可以重新格式化你的文件,從光標所在的位置一直到當前段落的結尾.

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

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

            2.11 - 我怎樣復制文本?

            這有點復雜.把這節拿出來,多看幾遍;還有,一定要多做實驗.

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

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

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

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

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

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

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

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

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

            舉例來說,如果要移動上一段的話,你可以把光標移到段落的開頭,敲"a13dd,再把光標移到

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

            現在,大概你想要剪切和粘貼文本到不是行末尾的區域去.我們來看如何做到這一點:我們

            可以使用 m<字母> 命令來標記一個區域,這個字母可以和剪切/粘貼寄存器的字母相同,因為

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

            要保存文本的那個寄存器,<字母>是用來標記的,yy和dd是你的操作.

            2.12 - 啊! 我剛才敲了一個dG,然后我的論文就沒有了! 我該怎么辦?

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

            u可以撤消你剛才的操作.U可以撤消你對當前行的修改(當然,一行對于一篇論文來說當然

            很不夠了). :e!可以不保存修改而重新把你的文件調進來. 還有,你刪除的文本都保存在從

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

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

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

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

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

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

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

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

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

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

            大. 例如, 有很多的方法可以用來查找和替換,它們有很多的類似地方(事實上,它們在某種

            意義上說都是一樣的)

            3.0 - 怎樣查找和替換?

            有很多方法. 最簡單的是:

            :s/old/new/g, 但是,這僅對當前行起作用..., 所以,我們用

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

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

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

            c,g,i中間的一個或者什么也沒有.c告訴vi每次替換的時候要給提示,g是說對所有一行中出現

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

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

            我比較喜歡這樣做:

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

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

            當然,你還可以在查找的的時候使用正規式,以及在替換文本的時候使用其他一些命令.如果

            你在正規式里用\(和\)來剝離一個序列的話,你會發現你可以做很多好玩的事情.

            例如:

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

            還有一些特殊的序列:

            & 所有查找時匹配到的東西

            \[1-9] 1到9號用\(和\)括起來的東西

            \u 下一個字符將被變成大寫.

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

            \l 下一個字符將被變成小寫.

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

            \[Ee] 更改大小寫的選擇區域的終點

            3.1 - 我怎樣在vi中運行一個程序?

            :!命令 可以在vi中運行程序. :sh會啟動一個交互式的外殼(SHELL).在這個外殼

            里面, 如果你愿意,你還可以再次運行vi. 當你在編輯Makefiles和配置文件來編譯

            某個程序的時候,這可能比較有用. 這比:e優越之處在于它無須保存文件,而且如果

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

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

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

            (這個文件名就是系統崩潰時你正在編輯的文件)你就可以恢復出你的論文來.只敲

            vi -r將把所有可能恢復的文件都列出來.

            3.3 - 有沒有使vi對程序員更友好的竅門?

            :set ai可以讓vi自動對齊.

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

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

            括起來的文本都左移或右移;這時候,你必須把光標放在這些符號({,(或[)上面.

            :set sm會在你敲},]或)顯示出對應匹配的{,[或(來.

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

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

            3.4 - 宏 -- 我怎樣寫宏?

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

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

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

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

            中去.

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

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

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

            3.6 - 有沒有辦法縮寫文本?

            當然了. 這可是vi呀,它能做任何事情!

            :ab email ellidz@midway.uchicago.edu 可以在你敲完email后,把那個沒有縮寫

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

            3.7 - 我怎樣在當前文檔中做拼寫檢查?

            這兒有一個宏可以做到這一點. 這些應該放在你的.exrc文件中(后面我們將對.exrc

            進一步討論). 它是一個相當簡單的宏. 它僅僅是調用ispell來處理當前文件.當然,你

            的系統里面一定得有ispell這個程序. 使用它的時候,只需要敲個V鍵就行了(因為vi并

            沒有用V,所以V是一個比較合適的鍵)

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

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

            (譯注, 在我的系統里,沒有ispell,只有spell,我用它替換了ispell,工作的不錯;還有,

            ^M不是兩個字符,而是一個字符,通過^V^M敲進去的;另外,我個人認為第二個^M還是不要

            的好,因為直接回到vi后你就無法看到拼寫檢查的結果了)

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

            好了,好了. 我并認為有人會真的問這個問題.這個問題太偏了,我們大可不必理

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

            vi啟動的時候處于一種特殊的模式下面,叫做"開放模式"; 在這種狀態下,事情或多或少

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

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

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

            模式呀?

            這兒的問題就是vi沒有認出你用的終端的類型. 于是它假定你有的是個最爛的終端,

            所以它決定依然處在開放模式下.這似乎沒什么用處.因為沒有多少人喜歡開放模式,但是開放

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

            現在,我們來看如何解決這個問題.我們有可能把它分成幾種特殊的情形,但是,一般情況下,

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

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

            export TERM)

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

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

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

            如果你確實不知道你地終端類型,試一試vt100.現在大多數地終端或者終端仿真器都能仿真

            vt100. 如果這還不能生效的話,你只好去找個高手來幫你了.

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

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

            的鏡象站點. 最主要的一個地址是alf.uib.no,但是這些文檔在很多很多地地方

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

            核對一下這個FAQ.因為很有可能有一個站點比去挪威的站點更近更快些.

            一個鏡象站點是cs.uwp.edu/pub/vi, 另一個是monu6.clearcase/" target="_blank" >cc.monash.edu.au/pub/Vi,

            這些站點上有很多有關vi的文件,還有一些vi的變種版本;當然,UCB版本的vi是

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

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

            這一節主要講述一些無聊的訣竅和一些無聊的宏.事實上,任何vi的訣竅和宏我們

            都歡迎,只要它們不是過分冗長. 如果有人向我建議而我也認為確實值得加的話,

            我會考慮加進去的.

            5.1 - 好玩的vi訣竅

            xp 刪除光標下的字符,再把粘貼到后面去.換句話說,它交換了當前兩個字符

            的位置.

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

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

            做的修改處)

            5.2 - 好玩的宏

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

            map * kxjphxkP

            折行

            map g $80|F r

            (譯注,我對這條宏表示疑問!)

            改變大多數單詞的大小寫

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

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

            在當前的單詞周圍加上`和'

            map *` i`'

            在當前的單詞周圍加上'和'

            map *' i''

            在當前的單詞周圍加上"和"

            map *" i""

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

            在當前的單詞周圍加上``和``

            map! `` `'

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

            從光標處把當前行分開,在下一行開頭加上一個>號(例如,引用USENET).如果加上了單詞的折行

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

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

            (不對吧--譯注)

            插入一個字符

            map g i$^[r

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

            ... 是指有些東西需要在命令之前或之后指明.這通常是說光標的移動鍵

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

            # (這里#代表一個數字) 執行n次后面的命令...

            : 進入ex模式

            ) 下一句

            ( 上一句

            } 下一段

            { 上一段

            ]] 下一節

            [[ 上一節

            0 行的開頭

            $ 行的末尾

            ^ 行的第一個非空白字符

            + 下一行的開頭

            - 上一行的開頭

            (空格) 下一個字符

            (回車) 下一行

            / 向前搜索

            ? 向后搜索

            % 查找當前小(中,大)括號的匹配字符

            , 逆向重復上一個f,F,t或T操作

            ; 重復上一個f,F,t或T操作

            . 重復上一個操作

            ` 轉到標記處

            ' 轉到標記所在行的開頭

            `` 查找前回到上一個做標記的地方

            '' 查找前回到上一個做標記所在行的開頭

            ~ 切換字符的大小寫

            " 保存到寄存器中

            !! 重復上一次SHELL命令

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

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

            >> 右移當前段落一個移動寬度(shiftwidth)

            << 左移當前段落一個移動寬度(shiftwidth)

            >% 從當前到匹配小(中,大)括號之間的文本右移

            <% 從當前到匹配小(中,大)括號之間的文本左移

            (似乎漏了一個符號|, 移動到某一列----譯注)

            a 在當前位置之后添加

            A 在當前行的末尾添加

            ^a 沒有使用

            b 上一個單詞的開頭

            B 上一個單詞的開頭,忽略標點符號

            ^b 上移一屏

            c 覆蓋...

            C 覆蓋到行末尾

            ^c 終止插入模式,在命令模式沒有用

            d 刪除...

            D 刪除到行末尾

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

            e 單詞的末尾

            E 單詞的末尾,忽略標點符號

            ^e 屏幕下卷一行

            f 查找...

            F 向后查找...

            ^f 下移一屏

            g 未用

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

            ^g 顯示狀態欄

            h 左移

            H 屏幕上的第一行

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

            i 在當前的位置前面插入

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

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

            j 下移

            J 把下一行合并到本行

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

            k 上移

            K 未用

            ^k 未用

            l 右移

            L 屏幕中的最后一行

            ^l 重繪屏幕

            m 把當前位置標記到寄存器中

            M 屏幕的中間行

            ^m 回車

            n 重復上次查找

            N 逆向重復上次查找

            ^n 命令模式下是下移

            o 在當前行的下面建一個新行

            O 在當前行的上面建一個新行

            ^o 未用

            p 在當前行的下面粘貼

            (譯注--應為在當前位置的后面粘貼)

            P 在當前行的上面粘貼

            (譯注--應為在當前位置的前面粘貼)

            ^p 命令模式下是上移

            q 未用

            Q 退出并且啟動ex

            ^q 未用

            r 覆蓋當前的字符

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

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

            s 替換

            S 替換整行

            t 到...

            T 向后到...

            ^t 移到下一個移動寬度(shifttab)處

            u 撤消上一次操作

            U 撤消對本行的所有修改

            ^u 上移半屏

            v 未用

            V 未用

            ^v 未用

            w 下一個單詞的開頭

            W 下一個單詞的開頭,忽略標點符號

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

            x 刪除當前字符

            X 刪除前一個字符

            ^x 未用

            y 復制...

            Y 復制整行

            ^y 屏幕上卷一行

            z 重新配置當前行周圍的屏幕

            ZZ 保存之后退出

            ^z 未用

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

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

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

            :r <文件> 把<文件>讀入到當前文檔

            :r !<命令> 把<命令>的輸出插入到當前文本中

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

            :!<命令> 運行<命令>,然后返回

            :sh 轉到SHELL

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

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

            保存之后退出

            :wq 保存之后退出

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

            vi就假定是當前文件,如果沒有指定l1,l2,就假定是整個文件(就成了:w)

            :w >> <文件> 添加到<文件>末尾. 也可以使用行號

            :w! 覆蓋當前文件

            :q 退出

            :q! 不存盤就退出

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

            :e! 重新編輯當前文件,忽略所有的修改

            :n 編輯下一個文件

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

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

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

            :rew 重新回到第一個編輯的文檔

            :map m n 創建一個宏(使 m 做 n)

            :map! m n 創建一個插入模式的宏(使 m 做 n)

            :unmap m 刪除宏m

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

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

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

            :set <選項> 設置<選項>...

            6.2 - 設置選項(set)

            可以使用括號中的縮寫形式. 語法:

            :set <選項> <參數> (如果需要參數的話)

            也可以在一行中指定多個選項

            :set <選項>? 顯示出當前這個選項的參數值

            :set all 則顯示所有的選項值

            對那些無須參數的選項來說,使用:set no<選項>就可以把它給關了

            選項: 缺省值: 含義:

            autoindent (ai) noai 使新行自動縮進,和上(下)行的位置對齊

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

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

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

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

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

            edcompatible noedcompatible 在替換的時候使用類ed的用法

            errorbells (eb) errorbells 出錯的時候響鈴

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

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

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

            lisp nolisp 打開lisp模式

            list nolist 顯示所有的制表鍵和行的結尾

            magic magic 可以使用更多的正規表達式

            mesg mesg 允許向終端發送消息

            number (nu) nonumber 顯示行號

            open open 允許開放和可視化

            optimize (opt) optimize 優化吞吐量,打印時不發回車

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

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

            readonly (ro) noro 除非用!號否則不準保存文件

            redraw noredraw 當編輯的時候重繪屏幕

            remap remap 允許宏指向其他的宏

            report= 5 如果影響的行數>這個數的話就報告

            scroll 1/2 window 下卷屏幕時滾動屏幕的數目,

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

            sections= SHNHH HU 定義節的末尾(當使用命令[[ 和 ]] 時)

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

            shiftwidth= (sw=) 8 當使用移動(shift)命令時移動的字符數

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

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

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

            tabstop= (ts=) 8 設置制表停止位(tabstop)的長度

            taglength= (tl=) 0 重要標記的字符個數(0表示所有的字符)

            tags= tag, /usr/lib/tags 定義包含標記的文件路徑

            term= 設置終端類型

            terse noterse 顯示簡短的錯誤信息

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

            ttytype= 設置終端類型

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

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

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

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

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

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

            scroll的參數值也不同,還多出來一些選項,如flash,modelines,novice,tagstack等等)

            7.0 - 建立 .exrc文件

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

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

            注釋.

            7.1 - .exrc文件的樣本

            以下的.exrc文件是一個實際的例子, 我自己的. 因此,它就沒有有些人想象的那樣設置很多的選項.即便

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

            首先,記住你無須在命令前面加:號,因為它是缺省就添加了的.

            "譯注--以下是.exrc文件中的內容,為真實起見,而且事實上也相當淺顯,我沒有翻譯其中的注釋

            " 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

            我很想說vi中沒有bug,但很不幸,它不是這樣的. 這些bug都是初始版本vi中的,

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

            例如 _宏有時就運行的有問題.

            9.0 - 術語表

            如果有人提議說某個術語他不明白,我們將更新這個術語表.如果你有什么建議,

            請一定要告訴我.

            命令模式 command mode

            命令模式是說我們在此模式下面可以向vi發命令(包括光標移動,編輯命令等等)

            ed

            UNIX里面一個非可視化的編輯器

           

            escape鍵. 鍵盤上標記為escape(ESC)的一個鍵.有時候^[可以起到相同的作用.

            如果沒有escape鍵,你可以試試Meta鍵

            ex

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

            插入模式 insert mode

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

            宏 macro

            宏是一些鍵的組合起來的快捷方式.例如,某個宏允許我們只敲一個鍵就可以執行

            好幾個不同的命令.

            開放模式 open mode

            開始模式是說vi啟動的時候不能確定你的終端類型,或者它肯定你的是一個硬的或

            電子管的終端

            正規表達式 regular expressions (RegEx)

            正規表達式,通常縮寫為"RegEx",是一些關鍵字的集合,它允許用戶在查找的時候有更大的

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

            sed

            流-行式的編輯器.它沒有界面,所有命令都是通過命令行的形式給出的.

            vi

            就是這個FAQ討論的編輯器

            rom98 回復于:2003-02-10 20:52:48很好!

            hmkart 回復于:2003-02-11 09:22:33經典,收藏!

            mjwaishelley 回復于:2003-02-11 11:33:30收,精華區,

        [轉帖] vi 命令常見問題解答Windows系統

        電腦資料

        [轉帖] vi 命令常見問題解答Windows系統》(http://m.r9876.cn)。。。。。。

            cxyzl0 回復于:2003-02-11 11:51:06經典,收藏!

            thank you!

            cxyzl0 回復于:2003-02-11 11:51:32經典,收藏!

            thank you!

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

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

            bf1720 回復于:2003-07-04 21:45:33

            這讓我使用vi更方便了

            stanlee 回復于:2003-07-05 16:13:45很好!講的很細。

            收下拉!

            Air_Fish 回復于:2003-08-27 18:59:52OK! GOOD!

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

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

           

            原文轉自:http://www.ltesting.net

        最新文章
        主站蜘蛛池模板: 一本本月无码-| 一区二区不卡国产精品| 亚洲AV无码一区二区一二区色戒| 亚洲AV熟妇在线观看| 日本不卡不二三区在线看| 久久无码精品一区二区三区| 欧美成人精品一级在线观看| 91视频网站| 人妻无码免费系列| 亚洲国产成人综合一区| 美女一区二区三区亚洲麻豆| 黄色99| 人妻日韩人妻中文字幕| 亚洲av综合色一区二区| www.色吊丝av.com| 91在线播放免费不卡无毒| 国产欧美另类精品久久久| 伊人色色网| 色哟哟精品无码网站在线播放视频 | 日日碰狠狠添天天爽超碰97| 久久人妻夜夜做天天爽| 国产97色在线 | 免| 亚洲精品在线视频| 国产96在线 | 亚洲| 亚洲日本天堂| 国自产在线精品一本无码中文| AV人摸人人人澡人人超碰| 精品久久久久久久久久久| 特级毛片在线大全免费播放| 91视频亚洲| 99精品在线观看| 成人夜间福利| 天天影视色香欲综合久久| 国产一級A片免费看| 亚洲精品在线观看视频一区二区三区在线 | 色吊丝中文国产| 日日噜噜夜夜狠狠视频欧美人| 在线aⅴ亚洲中文字幕| 国产亚洲欧洲AⅤ综合一区| 131美女爽爽爽爱做视频| 国产在线精品一区二区三区不卡|