Vi編輯器詳細操作方法_第1頁
Vi編輯器詳細操作方法_第2頁
Vi編輯器詳細操作方法_第3頁
Vi編輯器詳細操作方法_第4頁
Vi編輯器詳細操作方法_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、熟悉VI 是學習UNIX 系統(tǒng)的一個關口vi 是visual edit 的縮寫進入vi的命令vi filename :打開或新建文件,并將光標置于第一行首vi +n filename :打開文件,并將光標置于第n行首vi + filename :打開文件,并將光標置于最后一行首vi +/pattern filename:打開文件,并將光標置于第一個與pattern匹配的串處vi -r filename :在上次正用vi編輯時發(fā)生系統(tǒng)崩潰,恢復filenamevi filename.filename :打開多個文件,依次進行編輯移動光標類命令h :光標左移一個字符l :光標右移一個字符space

2、:光標右移一個字符Backspace:光標左移一個字符k或Ctrl+p:光標上移一行j或Ctrl+n :光標下移一行Enter :光標下移一行w或W :光標右移一個字至字首b或B :光標左移一個字至字首e或E :光標右移一個字至字尾) :光標移至句尾( :光標移至句首:光標移至段落開頭:光標移至段落結尾nG:光標移至第n行首n+:光標下移n行n-:光標上移n行n$:光標移至第n行尾H :光標移至屏幕頂行M :光標移至屏幕中間行L :光標移至屏幕最后行0:(注意是數字零)光標移至當前行首$:光標移至當前行尾屏幕翻滾類命令Ctrl+u:向文件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件

3、尾翻一屏Ctrlb;向文件首翻一屏nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。插入文本類命令i :在光標前I :在當前行首a:光標后A:在當前行尾o:在當前行之下新開一行O:在當前行之上新開一行r:替換當前字符R:替換當前字符及其后的字符,直至按ESC鍵s:從當前光標位置處開始,以輸入的文本替代指定數目的字符S:刪除指定數目的行,并以所輸入文本代替之ncw或nCW:修改指定數目的字nCC:修改指定數目的行刪除命令ndw或ndW:刪除光標處開始及其后的n-1個字do:刪至行首d$:刪至行尾ndd:刪除當前行及其后n-1行x或X:刪除一個字符,x刪除光標后的,而X刪除光標前的Ctr

4、l+u:刪除輸入方式下所輸入的文本搜索及替換命令/pattern:從光標開始處向文件尾搜索pattern?pattern:從光標開始處向文件首搜索patternn:在同一方向重復上一次搜索命令N:在反方向上重復上一次搜索命令:s/p1/p2/g:將當前行中所有p1均用p2替代:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代:g/p1/s/p2/g:將文件中所有p1均用p2替換選項設置all:列出所有選項設置情況term:設置終端類型ignorance:在搜索中忽略大小寫list:顯示制表位(Ctrl+I)和行尾標志($)number:顯示行號report:顯示由面向行的命

5、令修改過的數目terse:顯示簡短的警告信息warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息nomagic:允許在搜索模式中,使用前面不帶“”的特殊字符nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始mesg:允許vi顯示其他用戶用write寫到自己終端上的信息保存退出命令:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下:n1,n2 d :將n1行到n2行之間的內容刪除:w :保存當前文件:e filename:打開文件filename進行編輯:x:保存當前文件并退出:q

6、:退出vi:q!:不保存文件并退出vi:!command:執(zhí)行shell命令command:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入:r!command:將命令command的輸出結果放到當前行寄存器操作"?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字"?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字"?nyl:將當前行及其下n個字符保存到寄存器?中,其中?為一個字母,n為一個數字&

7、quot;?p:取出寄存器?中的內容并將其放到光標位置處。這里?可以是一個字母,也可以是一個數字ndd:將當前行及其下共n行文本刪除,并將所刪內容放到1號刪除寄存器中。進入vivi test離開vi:q! 離開vi,并放棄剛在緩沖區(qū)內編輯的內容。:wq 將緩沖區(qū)內的資料寫入磁盤中,并離開vi。:ZZ 同wq同wq:w 將緩沖區(qū)內的資料寫入磁盤中,但并不離開vi。:q 離開vi,若文件被修改過,則會被要求確認是否放棄修改的內容,此指令可與: w 配合使用。Vi 的操作模式Vi 提供兩種操作模式:輸入模式(insert mode)指令模式(command mode)當使用者進入vi后,既處于指令模

8、式下,此刻鍵入任何字元皆被視為指令。輸入模式:a(append) 游標之后加入資料。A 該行之末加入資料i (insert) 游標之前加入資料I 該行之首加入資料o (open) 新增一行與該行之下供輸入資料O 新增一行與該行之上供輸入資料指令模式:B 移動移至該行第一個字符,若光標在該行第一字符則光標移至上一行第一字符。b 由游標所在位置之前一個字串的第一個字元cc 刪除整行,修改整行的內容。D 以行為單位,刪除游標在內后面的所有字符。db 刪除該行光標前字符dd 刪除該行de 刪除自光標開始后面的字符d加字符 刪除光標所在位置至字符之間的單E 移至該行最后字符,若光標在該行最后字符則光標移

9、至下一行最后字符e 由游標所在位置至該字串的最后一個字元G 移至該檔案的最后一行h 向前移一個字元j 向下移一個字元k 向上移一個字元0 移至該行之首M 移至視窗的中間那行L 移至視窗的最后一行l(wèi) 向后移一個字符0 由游標所在位置該行的第一個字元nG 移至該檔案的第n行n+ 自游標所在位置向后移n行至該行的第一字符n- 自游標所在位置向前移n行至該行的第一字符R 進入取代狀態(tài),直到ESC為止s 刪除游標所在字元,并進入取代模式直到ESCS 刪除游標所在之該行資料,并進入輸入模式直到ESCw 由游標所在位置之下一個字串的第一個字元x 刪除游標所在該字元。X 刪除游標所在之前一字元。r 用接于此指

10、令之后的字元取代(replace)游標所在字元yy yank整行,使游標所在該行復制到記憶體緩沖區(qū)<ctrl><g> 顯示該行之行號、檔案名稱、檔案中最末之行號、游標所在行號占總行號之百分比$ 由游標所在位置至該行的最后一個字元。) 由游標所在位置至下一個句子的第一個字元。( 由游標所在位置至該句子的第一個字元。 由游標所在位置至該段落的最后一個字元。 由游標所在位置至該段落的第一個字元yank和delete可將指定的資料復制到記憶體緩沖區(qū),而藉有put指令可將緩沖區(qū)內的資料復制到熒幕上例如:搬移一行 :在該行執(zhí)行dd游標移至目的地執(zhí)行p復制一行 :在該行執(zhí)行yy游標移

11、至目的地執(zhí)行p視窗移動:<ctrl><f> 視窗往下卷一頁<ctrl><b> 視窗往上卷一頁<ctrl><d> 視窗往下卷半頁<ctrl><u> 視窗往上卷半頁<ctrl><e> 視窗往下卷一行<ctrl><y> 視窗往上卷一行刪除、復制及修改指令介紹:d(delete)、c(change)和y(yank)這一類的指令在vi 中的指令格式為:operation+scope=command(運算子)(范圍)運算子:d 刪除指令。刪除資料,但會將刪除資料復

12、制到記憶體緩沖區(qū)。y 將資料(字組、行列、句子或段落)復制到緩沖區(qū)。p 放置(put)指令,與d和y配合使用。可將最后delete或yank的資料放置于游標所在位置之行列下。c 修改(change)指令,類似delete于insert的組合。刪除一個字組、句子等資料,并插入新鍵入的set all 查看所有set選項 :set 顯示當前set設置 :filetype on 通過$VIMRUNTIME/filetype.vim.打開文件類型檢測 ai/noai 自動縮進,新行與前面的行保持致的自動空格/不自動空格(缺省) aw/noaw 自動寫,轉入shell或使用:n編輯其他文件時, 當前的緩沖

13、區(qū)被寫入/不寫 flash/noflash 在出錯處閃爍但不嗚叫(缺省)/使用嗚叫而不閃爍 ic/noic 在查詢及模式匹配時忽賂大小寫/不忽略大小寫(缺省) lisp/nolist 在編輯lisp程序時設置自動空格以便排列文本/按前一行自動設置空格 magic/nomagic 在進行模式匹配時使用全部的特殊寧符/將特殊寧符只限制于"”和“$” mesg/nomesg 允許/不允許其他用戶向終端上寫東西 nu/nonu 屏幕左邊顯示行號/不顯示行號(缺省) ro/noro 只讀,除非明確設置為:w,否則不允許對文件改動/普通讀寫模式 remap/noremap 允許將宏直接映射到已經

14、編輯好的命令行中(缺省)求宏定義明確 showmatch 顯示括號配對,當鍵入“”“)”時, 高亮度顯示匹配的括號缺省不高亮 showmode 處于文本輸入方式時加亮按鈕條中的模式指示器缺省不指示當前模式 ts=n 將TAB鍵的跨度設置為n個寧符間距,缺省為8 warn/nowarn 對文本進行了新的修改后,離開shell時系統(tǒng)給出顯示(缺省) ws/nows 在搜索時如到達文件尾則繞回文件頭繼續(xù)搜索 wrap/nowrap 長行顯示自動折行 wm=n 保留空邊,n為顯示的最右邊留出的空白邊的字符數 si smart indent 括號自動對齊 fe=prc 設置漢字整字處理 augroup

15、顯示已存在auto命令組 nobackup 取消自動備份 encoding=prc 設置漢字處理,否則backspace刪除半個漢字 cindent 設置C格式縮進,縮進量是通過shiftwidth的值, 而不是通過tabstop的值 cino=string string定義了特殊需求的cindent行為, 參看:h cinoptions-values :h cinkeys等Linux如何退出VI編輯器2008-10-22 09:55:q退出:q!強行退出(不存盤):qw or ZZ存盤退出用ESC鍵只能切換到命令狀態(tài)更加詳細內容:在 linux 底下最常使用的文書編輯器為 vi ,請問如何進

16、入編輯模式?在一般模式底下輸入: i, I, a, A 為在本行當中輸入新字符;(出現 Insert- )在一般模式當中輸入: o, O 為在一個新的一行輸入新字符;在一般模式當中輸入: r, R 為取代字符!(左下角出現 Replace-)如何由編輯模式跳回一般模式?Esc若上下左右鍵無法使用時,請問如何在一般模式移動光標?h, j, k, l若 pagedown pageup 在一般模式無法使用時,如何往前或往后翻一頁?Ctrl + fCtrl + b如何到本檔案的最后一行、第一行;本行的第一個字符、最后一個字符?G, 1G, 0, $如何刪除一行、n行;如何刪除一個字符?dd, ndd,

17、 x 或 X (dG 及 d1G 分別表示刪除到頁首及頁尾)如何復制一行、n行并加以貼上?yy, nyy, p 或 P如何搜尋 string 這個字符串??string (往前搜尋)/string (往后搜尋)如何取代 word1 成為 word2,而若需要使用者確認機制,又該如何?:1,$s/word1/word2/g 或:1,$s/word1/word2/gc (需要使用者確認)如何讀取一個檔案 filename 進來目前這個檔案?:r filename如何另存新檔成為 newfilename?:w newfilename如何存盤、離開、存盤后離開、強制存盤后離開?:w; :q: :wq;

18、 :wq!如何設定與取消行號?:set nu:set nonu關于文本編輯VI的問題(一)進入vi在系統(tǒng)提示字符(如$、#)下敲入vi 檔案名稱,vi 可以自動幫你載入所要編輯的文件或是開啟一個新文件(如果該文件不存在或缺少文件名)。進入 vi 后螢幕左方會出現波浪符號,凡是列首有該符號就代表此列目前是空的。(二)、兩種模式如上所述,vi存在兩種模式:指令模式和輸入模式。在指令模式下輸入的按鍵將做為指令來處理:如輸入a,vi即認為是在當前位置插入字符。而在輸入模式下,vi則把輸入的按鍵當作插入的字符來處理。指令模式切換到輸入模式只需鍵入相應的輸入命令即可(如a,A),而要從輸入模式切換到指令模

19、式,則需在輸入模式下鍵入ESC鍵,如果不曉得現在是處於什麼模式,可以多按幾次 ESC,系統(tǒng)如發(fā)出嗶嗶聲就表示已處于指令模式下了。付:有指令模式進入輸入模式的指令:新增 (append)a :從光標所在位置後面開始新增資料,光標後的資料隨新增資料向後移動。A: 從光標所在列最後面的地方開始新增資料。插入 (insert)i: 從光標所在位置前面開始插入資料,光標後的資料隨新增資料向後移動。I :從光標所在列的第一個非空白字元前面開始插入資料。開始 (open)o :在光標所在列下新增一列并進入輸入模式。O: 在光標所在列上方新增一列并進入輸入模式。(三)、退出vi在指令模式下鍵入:q,:q!,:

20、wq或(注意:號),就會退出vi。其中:wq和是存盤退出,而:q是直接退出,如果文件已有新的變化,vi會提示你保存文件而:q命令也會失效,這時你可以用:w命令保存文件后再用:q退出,或用:wq或命令退出,如果你不想保存改變后的文件,你就需要用:q!命令,這個命令將不保存文件而直接退出vi。(四)、基本編輯配合一般鍵盤上的功能鍵,像是方向鍵、Insert 、Delete 等等,現在你應該已經可以利用 vi 來編輯文件了。當然 vi 還提供其他許許多多功能讓文字的處理更為方便。何謂編輯?一般認為是文字的新增、修改以及刪除,甚至包括文字區(qū)塊的搬移、復制等等。先這里介紹 vi的如何做刪除與修改。(注意

21、:在 vi 的原始觀念里,輸入跟編輯是兩碼子事。編輯是在指令模式下操作的,先利用指令移動光標來定位要進行編輯的地方,然後才下指令做編輯。)刪除與修改文件的命令:x: 刪除光標所在字符。dd :刪除光標所在的列。r :修改光標所在字元,r 後接著要修正的字符。R: 進入取替換狀態(tài),新增文字會覆蓋原先文字,直到按 ESC 回到指令模式下為止。s: 刪除光標所在字元,并進入輸入模式。S: 刪除光標所在的列,并進入輸入模式。其實呢,在PC上根本沒有這麼麻煩!輸入跟編輯都可以在輸入模式下完成。例如要刪除字元,直接按Delete 不就得了。而插入狀態(tài)與取代狀態(tài)可以直接用 Insert 切換,犯不著用什麼指

22、令模式的編輯指令。不過就如前面所提到的,這些指令幾乎是每臺終端機都能用,而不是僅僅在 PC 上。在指令模式下移動光標的基本指令是 h, j, k, l 。想來各位現在也應該能猜到只要直接用 PC 的方向鍵就可以了,而且無論在指令模式或輸入模式下都可以。多容易不是。當然 PC 鍵盤也有不足之處。有個很好用的指令 u 可以恢復被刪除的文字,而 U 指令則可以恢復光標所在列的所有改變。這與某些電腦上的 Undo 按鍵功能相同。三、附件:vi詳細指令表(一)、基本編輯指令:新增 (append)a :從光標所在位置後面開始新增資料,光標後的資料隨新增資料向後移動。A: 從光標所在列最後面的地方開始新增

23、資料。插入 (insert)i: 從光標所在位置前面開始插入資料,光標後的資料隨新增資料向後移動。I :從光標所在列的第一個非空白字元前面開始插入資料。開始 (open)o :在光標所在列下新增一列并進入輸入模式。O: 在光標所在列上方新增一列并進入輸入模式。x: 刪除光標所在字符。dd :刪除光標所在的列。r :修改光標所在字元,r 後接著要修正的字符。R: 進入取替換狀態(tài),新增文字會覆蓋原先文字,直到按 ESC 回到指令模式下為止。s: 刪除光標所在字元,并進入輸入模式。S: 刪除光標所在的列,并進入輸入模式。(二)、光標移動指令:由於許多編輯工作是藉由光標來定位,所以 vi 提供許多移動

24、光標的方式,這個我們列幾張簡表來說明(這些當然是指令模式下的指令):指令 說明 功能鍵 0 移動到光標所在列的最前面 Home $ 移動到光標所在列的最後面 End CTRLd 向下半頁 CTRLf 向下一頁 PageDownCTRL 向上半頁 CTRL 向上一頁 PageUp 指令說明 H 移動到視窗的第一列 M 移動到視窗的中間列 L 移動到視窗的最後列 b 移動到下個字的第一個字母 w 移動到上個字的第一個字母 e 移動到下個字的最後一個字母 移動到光標所在列的第一個非空白字元指令說明 n- 減號移動到上一列的第一個非空白字元 前面加上數字可以指定移動到以上 n 列 n+ 加號移動到下一

25、列的第一個非空白字元 前面加上數字可以指定移動到以下 n 列 nG 直接用數字 n 加上大寫 G 移動到第 n 列 指令 說明 fx 往右移動到 x 字元上 Fx 往左移動到 x 字元上 tx 往右移動到 x 字元前 Tx 往左移動到 x 字元前 ; 配合 f&t 使用,重復一次 , 配合 f&t 使用,反方向重復一次 /string 往右移動到有 string 的地方 ?string 往左移動到有 string 的地方 n 配合 /&? 使用,重復一次 N 配合 /&? 使用,反方向重復一次 指令 說明 備注 n( 左括號移動到句子的最前面 句子是以 前面加上數字可以指定往前移動 n 個句子 ! . ? 三種符號來界定n) 右括號移動到下個句子的最前面 前面加上數字可以指定往後移動 n 個句子 n 左括弧移動到段落的最前面 段落是以 前面加上數字可以指定往前移動 n 個段落 段

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論