這是我總結的一些基本用法,可能對初用者會有幫助,獨樂樂不如眾樂樂,是吧!
說明:以下黑色為vi和vim均有的一般功能,而紅色為Vim(Vi Improved)所特有功能。Vim一般的Unix和Linux下均有安裝。 ? 三種狀態 Command: 任何輸入都會作為編輯命令,而不會出現在屏幕上,任何輸入都引起立即反映 Insert: 任何輸入的數據都置于編輯寄存器,按ESC,可跳回command方式 Escape: 以“:”或者“/”為前導的指令,出現在屏幕的最下一行,任何輸入都被當成特別指令。 ? 離開vi :q! 離開vi,并放棄剛在緩沖區內編輯的內容。 :wq 將緩沖區內的資料寫入磁盤中,并離開vi。 :x 同wq。 (注意—— :X 是文件加密,一定要與:x存盤退出相區別) ? 進入輸入模式 a (append) 由游標之后加入資料。 A 由該行之末加入資料。 i (insert) 由游標之前加入資料。 I 由該行之首加入資料。 o (open) 新增一行於該行之下供輸入資料之用。 O 新增一行於該行之上供輸入資料之用。 ? 刪除與修改 x 刪除游標所在該字元。 X 刪除游標所在之前一字元。 r 用接於此指令之后的字元取代(replace)游標所在字元。如:ra將游標所在字元以 a 取代之。 R 進入取代狀態,直到《ESC》為止。 s 刪除游標所在之字元,并進入輸入模式直到《ESC》。 S 刪除游標所在之該行資料,并進入輸入模式直到《ESC》。 ? 光標的移動 m<a-z> 設置書簽<a-z> ‘<a-z> 移至書簽<a-z>處 0 移至該行之首 $ 移至該行之末。 e 移動到下個字的最後一個字母 w 移動到下個字的第一個字母。 b 移動到上個字的第一個字母。 ^ 移至該行的第一個字元處。 H 移至視窗的第一行。 M 移至視窗的中間那行。 L 移至視窗的最后一行。 G 移至該文件的最后一行。 + 移至下一列的第一個字元處。 - 移至上一列的第一個字元處。 :n 移至該文件的第 n 列。 n+ 移至游標所在位置之后的第 n 列。 n- 移至游標所在位置之前的第 n 列。 <Ctrl><g> 顯示該行之行號、文件名稱、文件中最末行之行號、游標所在行號占總行號之百分比。
(Vim) 光標移動基本用法小解: (這只要組合上邊的功能就可以明白了,不用再一一講解了吧!) ge b w e ← ← ---→ --→ This is-a line, with special/separated/words (and some more). ←- ←-- -----------------→ ---→ GE B W E
? 視窗的移動 <Ctrl><f> 視窗往下卷一頁。 <Ctrl><b> 視窗往上卷一頁。 <Ctrl><d> 視窗往下卷半頁。 <Ctrl><u> 視窗往上卷半頁。 <Ctrl><e> 視窗往下卷一行。 <Ctrl><y> 視窗往上卷一行。 ? 剪切、復制、刪除 Operator + Scope = command ? Operator d 剪切 y 復制。 p 粘帖,與 d 和 y 配和使用??蓪⒆詈骴或y的資料放置於游標所在位置之行列下。 c 修改,類似delete與insert的組和。刪除一個字組、句子等之資料,并插入新建資料。 ? Scope e 由游標所在位置至該字串的最后一個字元。 w 由游標所在位置至下一個字串的第一個字元。 b 由游標所在位置至前一個字串的第一個字元。 $ 由游標所在位置至該行的最后一個字元。 0 由游標所在位置至該行的第一個字元。 ? 整行動作 dd 刪除整行。 D 以行為單位,刪除游標后之所有字元。 cc 修改整行的內容。 yy 使游標所在該行復制到記憶體緩沖區。 ? 取消前一動作(Undo) u 恢復最后一個指令之前的結果。 U 恢復游標該行之所有改變。 (vim) u 可以多次撤消指令,一次撤消一個操作,直至本次操作開始為止。 (vim) Ctrl+r 可以恢復撤消前內容,按多次可恢復多次。 ? 查找與替換 /字串 往游標之后尋找該字串。 ?字串 往游標之前尋找該字串。 n 往下繼續尋找下一個相同的字串。 N 往上繼續尋找下一個相同的字串。 % 查找“(”,“)”,“{”,“}”的配對符。 s 搜尋某行列范圍。 g 搜尋整個編輯緩沖區的資料。 :1,$s/old/new/g 將文件中所有的『old』改成『new』。 :10,20s/^/ / 將第10行至第20行資料的最前面插入5個空白。 (vim) /字符串 后邊輸入查詢內容可保存至緩沖區中,可用↑↓進行以往內容選擇。 另外:將光標移動在選定單詞下方按*,則可以選中此單詞作為查詢字符,可以避免輸入一長串字符的麻煩。 ? (vim) 大小寫替換 首先用按v開啟選擇功能,然后用↑↓←→鍵來選定所要替換的字符,若是小寫變大寫,則按U;反之按u; 如果是選擇單詞,則可以在按v后,按w,最后按U/u,這樣就可以將字符隨意的改變大小寫了,而不用刪除后重新敲入。
? 資料的連接 J 句子的連接。將游標所在之下一行連接至游標該行的后面。 ? 環境的設定 :set all 可設置的環境變量列表 :set 環境變量的當前值 :set nu 設定資料的行號。 :set nonu 取消行號設定。 :set ai 自動內縮。 :set noai 取消自動內縮。 (vim) :set ruler 會在屏幕右下角顯示當前光標所處位置,并隨光移動而改變,占用屏幕空間較小,使用也比較方便,推薦使用。 :set hlsearch 在使用查找功能時,會高亮顯示所有匹配的內容。 :set nohlsearch 關閉此功能。 :set incsearch 使Vim在輸入字符串的過程中,光標就可定位顯示匹配點。 :set nowrapscan 關閉查找自動回環功能,即查找到文件結尾處,結束查找;默認狀態是自動回環
? ex指令 ? 讀寫資料 :10,20w test 將第10行至第20行的資料寫入test文件。 :10,20w>>test 將第10行至第20行的資料加在test文件之后。 :r test 將test文件的資料讀入編輯緩沖區的最后。 :e [filename] 編輯新的文件。 :e! [filename] 放棄當前修改的文件,編輯新的文件。 :sh 進入shell環境,使用exit退出,回到編輯器中。
:!cmd 運行命令cmd后,返回到編輯器中。 ? 刪除、復制及搬移 :10,20d 刪除第10行至第20行的資料。 :10d 刪除第10行的資料。 :%d 刪除整個編輯緩沖區。 :10,20co30 將第10行至第20行的資料復制至第30行之后。 :10,20mo30 將第10行至第20行的資料搬移至第30行之后。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jsufcz/archive/2009/02/11/3875956.aspx
posted on 2011-05-03 14:25 liujg 閱讀(254) 評論(0) 編輯 收藏
Powered by: BlogJava Copyright © liujg