天天看點

vi指令合集

vi 工作模式分為指令模式和輸入模式,一般情況下在指令模式下,可敲入vi指令,進入輸入模式下時可以編輯要編輯的文本,指令 a A i I o O c C s S R 可進入輸入模式,在輸入模式下按 ESC 鍵可推出輸入模式,回到指令模式,在指令模式中敲入: 指令,則可進入ex方式,在螢幕底部出現提示符: ,此時可使用任意ex指令,螢幕底行也用來作/ ? ! 指令的提示行,大多數指令可以在其前面加數字,表示指令執行的重複次數。

下面簡單介紹一下vi 的指令集,^ 表示(CTRL)鍵

^B 退回前一頁,前面加數字表示重複次數,每次換頁時

保留上一頁的兩行

^D 在指令模式下,表示下滾螢幕的一半,在輸入模式下,表示回退至

左邊的自動縮進處

^E 顯示螢幕底線之下的一行

^F 前進一頁,前面加數字表示重複次數,每次換頁時

保留上一頁的兩行

^G 顯示目前檔案名,目前行号和檔案總行數,并用百分号目前行在

整個檔案中的位置

^H(倒退) 在指令模式下,光标左移一格;在輸入模式下,删去前面的字元

^I(TAB) 在輸入模式下,産生一串空格

^J(LF) 光标下移一行

^L 重新整理螢幕,即将螢幕重新顯示

^M(回車) 在指令模式下,光标移動至下行開頭

在輸入模式下,開辟一新行

^N 光标下移一行

^P 光标上移一行

^Q 在輸入模式下,将其後的非列印字元作為正文插入

^R 重新整理螢幕

^U 螢幕上滾一半,前面加數字時表示上滾的行數,此數字對

以後的^D ^U 指令有效

^V 在輸入模式下,将其後的非列印字元作為正文插入

^W 在輸入模式下,使光标回退一個字

^Y 顯示螢幕底線之上的一行

^Z 暫停編輯,退回上層Shell

^[(ESC) 退出輸入模式,回到指令模式

! 暫時退出編輯,執行Shell指令

"(雙引号) 用于标志有名緩沖區,編号緩沖區1-9用于儲存被删去的正文,字

母名緩沖區a-z供使用者存放自定義的正文

$ 将光标移動到目前行尾,前加數字則表示前移行數,如2$表示移動

到下一行行尾

% 将光标移動到配對的小括号()或大括号{}上去

( 退回句子開頭

) 前移到句子開頭

減号- 退到上一行第一個非空格字元

. 重複上一次改變緩沖區内容的指令

/ 模式向前搜尋模式,将光标移動到模式出現處,模式是一個正規

表達式,(參看 grep)

: 在螢幕底部提示:,其後可使用ex指令

? 功能同 / ,但方向是向前查找

[[ 光标回退至前一節分界處

\ 轉意符

]] 光标前移至節分界處

^(不是CTRL) 光标移至目前行第一個非空字元上

’ 連續兩個’'表示将光标移至其移動前的位置,'後跟字母表示光标字

母标記的行首(參看 m 指令)

A 在行尾插入正文,進入輸入模式

B 光标回退一個字

C 替換光标後的内容

D 删除光标後的内容

E 光标前移到字尾

F 字元在目前行向左查找指定字元

G 光标移動到其前面數字指定的行,若未指定則移動到最後一行

H 光标移動到螢幕頂行,若前面有數字,則移動到螢幕上該數字

指定的行

I 在行開頭插入正文

J 連接配接兩行,若前面有數字則連接配接數字指定的行

L 光标移動到螢幕底行,若前面有數字,則移動到螢幕底線往上數該

數字指定的行

M 光标移動到螢幕中線

N 使用模式查找/或?時,重複找下一個比對的模式,但方向與上次相

反,其功能同 n ,但方向相反

O 在目前行上開辟一新行

P 将上次被删除的正文插入光标前面,可在其前面加緩沖區編号,編

号1-9用于儲存被删去的正文,字母名緩沖區a-z供使用者存放自定

義的正文

Q 從vi 推出進入ex指令狀态

R 替換字元串

S 替換整行

T 字元向左查找字元

U 将目前行恢複至第一次修改前的狀态

W 光标移至下一個字首

X 删除光标前的字元

Y 将目前行存入無名緩沖區,前面加數字表示存入的行數,也可用有

名緩沖區來儲存,以後可用指令p或P将其取出

ZZ 存盤退出vi

a 光标後插入正文

b 光标回退至上一個字首

cw 替換目前字

c) 替換目前句子

dw 删除一個字

dd 删除一行

e 光标移到下一個字末

f 字元在目前行向前查找字元

h 光标左移一格

i 在光标前插入正文

j 光标下移一行

k 光标上移一行

l 光标右移一格

m 字母用字母标記目前行,以後可用 '字母使光标移動到目前行,

(參看’指令)

n 重複上次 / 或 ? 指令

o 在目前行下開辟一新行

p 将使用者緩沖區内容放到光标位置(參看P指令)

r 替換目前字元

s 用一串字元替換目前字元

t 字元光标移動至字元前

u 取消上次操作

w 光标移至下一字首

x 删除目前字元

yw 将目前字存入無名緩沖區,前面可加"x,表示存入名字為x的有名

緩沖區(x為a-z),也可加數字表示存入的字數,以後可用P或p命

令取出

yy 将目前行存入無名緩沖區,用法參看yw

{ 光标移動至前一段開頭

| 光标移至行首,若前面加數字,則移到數字指定行的行首

} 光标移至下一段開頭

在:提示符下,常用指令如下:

:w 目前檔案存盤

:w! 強制存盤

:w 檔案将内容寫入指定檔案

:w! 檔案強制寫入指定檔案

:x,y w 檔案将 x至 y 行寫入指定檔案中

:r 檔案将檔案讀到光标位置

:r ! 指令将系統指令的輸出讀到光标位置

:q 退出編輯

:q! 強制退出

:x 與指令ZZ相同

:e 檔案名編輯另一檔案

:e ! 重新編輯檔案,放棄任何改變

:sh 執行sh,結束後回到編輯

:! 指令執行指令後回到編輯

:n 編輯下一檔案

:n 檔案表重新定義待編輯檔案表

:set 設定 vi 的選項,例如 set nu 表示每行前顯示行号,在選項前

加no則表示清除該選項,例如 set nonu 表示每行前不顯示行

号,下面是一些常用的選項:

ai 自動縮進

aw 編輯下一檔案前自動存盤

ic 查找字元串時不區分大小寫

nu 每行前顯示行号

sm 輸入)及}時顯示與之配對的( 或 {

slow 插入時延遲螢幕重新整理

ws 使查找能繞過檔案尾從頭進行

wa 寫檔案之前不作對檔案的檢查

替換字元

:%s/^M//g 将DOS回車換行替換為UNIX回車 ^M輸入方法 CTRL+V CTRL+M

:%s/123/456/g 将所有123替換為456

:10,$s/aaa/bbb/g 從第10行到結尾的aaa替換成bbb

非常簡單的一個操作,隻需2步,完美解決Ubuntu下vi編輯器方向鍵變字母的問題。

一.執行指令 sudo apt-get remove vim-common

二.執行指令 sudo apt-get install vim

設定tab占用空格數

set tabstop=4

set ts=4