導航:首頁 > 程序命令 > vi中的命令

vi中的命令

發布時間:2022-12-20 13:40:51

❶ vi 命令大全

vi filename   打開或新建文檔,並將游標置於第一行行首
vi +n filename   打開文件,並將游標置於第n行首
vi + filename   打開文件,並將游標置於最後一行首
vi +/pattern filename   打開文件,並將游標置於第一個與pattern匹配的串處
vi -r filename   在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename....filename   打開多個文件,依次進行編輯

w   保存當前文件
w /tmp1   另存為/tmp1
20,59w /tmp1   僅將20-59行之間的內存另存為/tmp1
x 或 wq   保存退出
q   退出vi
q!   退出不保存 >
!command   執行shell命令command
n1,n2 w !command   將文件中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
r !command   將命令command的輸出結果放到當前行
w !sudo tee %   保存沒許可權時,可獲取許可權再保存

h  游標左移一個字元
l  游標右移一個字元
space  游標右移一個字元
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   向文件尾翻一屏
Ctrl+b   向文件首翻一屏
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刪除游標前的
Ctrl+u   刪除輸入方式下所輸入的文本
n1,n2 d   將n1行到n2行之間的內容刪除
%d   刪除全部內容
1,$d   刪除全部內容

yy   復制當前行
nyy   復制當前行開始的n行
  先按 v 然後方向鍵選擇區域,按 y 復制選中行
dd   剪切當前行
p (小)   在當前游標處下面粘貼內容
P (大)   在當前游標處上面粘貼內容
n1,n2 co n3   將n1行到n2行之間的內容拷貝到第n3行下
n1,n2 m n3   將n1行到n2行之間的內容移至到第n3行下

/abc   從游標開始處向文件尾搜索abc
?abc   從游標開始處向文件首搜索abc
//abc   從游標開始處向文件尾搜索/abc,其中/是轉義
n   在同一方向重復上一次搜索命令
N   在反方向上重復上一次搜索命令

s/vivian/sky/   替換當前行第一個 vivian 為 sky
s/vivian/sky/g   替換當前行所有 vivian 為 sky
n,$s/vivian/sky/   替換第 n 行開始到最後一行中每一行的第一個 vivian 為 sky
n,$s/vivian/sky/g   替換第 n 行開始到最後一行中每一行所有 vivian 為sky
%s/vivian/sky/g   (等同於 g/vivian/s//sky/) 替換每一行的每一個 vivian 為 sky
s#vivian/#sky#   替換當前行第一個 vivian/ 為 sky/(可以使用 # 或 + 作為分隔符,此時中間出現的 / 不會作為分隔符)
s/p1/p2/g   將當前行中所有p1均用p2替代
n1,n2s/p1/p2/g   將第n1至n2行中所有p1均用p2替代
g/p1/s//p2/g   將文件中所有p1均用p2替換

"?nyy   將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyw   將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyl   將當前行及其下n個字元保存到寄存器?中,其中?為一個字母,n為一個數字
"?p   取出寄存器?中的內容並將其放到游標位置處。這里?可以是一個字母,也可以是一個數字
ndd   將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中

set number   顯示行號
set number!   不顯示行號,其它選項同理加!號
set all   列出所有選項設置情況
set term   設置終端類型
set ignorance   在搜索中忽略大小寫
set list   顯示製表位(Ctrl+I)和行尾標志($)
set report   顯示由面向行的命令修改過的數目
set terse   顯示簡短的警告信息
set warn   在轉到別的文件時若沒保存當前文件則顯示NO write信息
set nomagic   允許在搜索模式中,使用前面不帶「」的特殊字元
set nowrapscan   禁止vi在搜索到達文件兩端時,又從另一端開始
set mesg   允許vi顯示其他用戶用write寫到自己終端上的信息

參考文獻:
https://www.cnblogs.com/mondol/p/vi-examples.html

❷ vi的常用命令

vi的基本操作
a) 進入vi

在系統提示符號輸入vi及文件名稱後,就進入vi全屏幕編輯畫面:

$ vi myfile

不過有一點要特別注意,就是您進入vi之後,是處於「命令行模式(command mode)」,您要切換到「插入模式(Insert mode)」才能夠輸入文字。初次使用vi的人都會想先用上下左右鍵移動游標,結果電腦一直嗶嗶叫,把自己氣個半死,所以進入vi後,先不要亂動,轉換到「插入模式(Insert mode)」再說吧!

b) 切換至插入模式(Insert mode)編輯文件

在「命令行模式(command mode)」下按一下字母「i」就可以進入「插入模式(Insert mode)」,這時候你就可以開始輸入文字了。

c) Insert 的切換

您目前處於「插入模式(Insert mode)」,您就只能一直輸入文字,如果您發現輸錯了字!想用游標鍵往回移動,將該字刪除,就要先按一下「ESC」鍵轉到「命令行模式(command mode)」再刪除文字。

d) 退出vi及保存文件

在「命令行模式(command mode)」下,按一下「:」冒號鍵進入「Last line mode」,例如:

: w filename (輸入 「w filename」將文章以指定的文件名filename保存)

: wq (輸入「wq」,存檔並退出vi)

: q! (輸入q!, 不存檔強制退出vi)

3、命令行模式(command mode)功能鍵
1). 插入模式

按「i」切換進入插入模式「insert mode」,按「i」進入插入模式後是從游標當前位置開始輸入文件;

按「a」進入插入模式後,是從目前游標所在位置的下一個位置開始輸入文字;

按「o」進入插入模式後,是插入新的一行,從行首開始輸入文字。

2). 從插入模式切換為命令行模式

按「ESC」鍵。

3). 移動游標

vi可以直接用鍵盤上的游標來上下左右移動,但正規的vi是用小寫英文字母「h」、「j」、「k」、「l」,分別控制游標左、下、上、右移一格。

按「ctrl」+「b」:屏幕往「後」移動一頁。

按「ctrl」+「f」:屏幕往「前」移動一頁。

按「ctrl」+「u」:屏幕往「後」移動半頁。

按「ctrl」+「d」:屏幕往「前」移動半頁。

按數字「0」:移到文章的開頭。

按「G」:移動到文章的最後。

按「$」:移動到游標所在行的「行尾」。

按「^」:移動到游標所在行的「行首」

按「w」:游標跳到下個字的開頭

按「e」:游標跳到下個字的字尾

按「b」:游標回到上個字的開頭

按「#l」:游標移到該行的第#個位置,如:5l,56l。

4). 刪除文字

「x」:每按一次,刪除游標所在位置的「後面」一個字元。

「#x」:例如,「6x」表示刪除游標所在位置的「後面」6個字元。

「X」:大寫的X,每按一次,刪除游標所在位置的「前面」一個字元。

「#X」:例如,「20X」表示刪除游標所在位置的「前面」20個字元。

「dd」:刪除游標所在行。

「#dd」:從游標所在行開始刪除#行

5). 復制

「yw」:將游標所在之處到字尾的字元復制到緩沖區中。

「#yw」:復制#個字到緩沖區

「yy」:復制游標所在行到緩沖區。

「#yy」:例如,「6yy」表示拷貝從游標所在的該行「往下數」6行文字。

「p」:將緩沖區內的字元貼到游標所在位置。注意:所有與「y」有關的復制命令都必須與「p」配合才能完成復制與粘貼功能。

6). 替換

「r」:替換游標所在處的字元。

「R」:替換游標所到之處的字元,直到按下「ESC」鍵為止。

7). 回復上一次操作

「u」:如果您誤執行一個命令,可以馬上按下「u」,回到上一個操作。按多次「u」可以執行多次回復。

8). 更改

「cw」:更改游標所在處的字到字尾處

「c#w」:例如,「c3w」表示更改3個字

9). 跳至指定的行

「ctrl」+「g」列出遊標所在行的行號。

「#G」:例如,「15G」,表示移動游標至文章的第15行行首。

4、Last line mode下命令簡介
在使用「last line mode」之前,請記住先按「ESC」鍵確定您已經處於「command mode」下後,再按「:」冒號即可進入「last line mode」。

A) 列出行號

「set nu」:輸入「set nu」後,會在文件中的每一行前面列出行號。

B) 跳到文件中的某一行

「#」:「#」號表示一個數字,在冒號後輸入一個數字,再按回車鍵就會跳到該行了,如輸入數字15,再回車,就會跳到文章的第15行。

C) 查找字元

「/關鍵字」:先按「/」鍵,再輸入您想尋找的字元,如果第一次找的關鍵字不是您想要的,可以一直按「n」會往後尋找到您要的關鍵字為止。

「?關鍵字」:先按「?」鍵,再輸入您想尋找的字元,如果第一次找的關鍵字不是您想要的,可以一直按「n」會往前尋找到您要的關鍵字為止。

D) 保存文件

「w」:在冒號輸入字母「w」就可以將文件保存起來。

E) 離開vi

「q」:按「q」就是退出,如果無法離開vi,可以在「q」後跟一個「!」強制離開vi。

「qw」:一般建議離開時,搭配「w」一起使用,這樣在退出的時候還可以保存文件。

5、vi命令列表
1、下表列出命令模式下的一些鍵的功能:

h
左移游標一個字元

l
右移游標一個字元

k
游標上移一行

j
游標下移一行

^
游標移動至行首

0
數字「0」,游標移至文章的開頭

G
游標移至文章的最後

$
游標移動至行尾

Ctrl+f
向前翻屏

Ctrl+b
向後翻屏

Ctrl+d
向前翻半屏

Ctrl+u
向後翻半屏

i
在游標位置前插入字元

a
在游標所在位置的後一個字元開始增加

o
插入新的一行,從行首開始輸入

ESC
從輸入狀態退至命令狀態

x
刪除游標後面的字元

#x
刪除游標後的#個字元

X
(大寫X),刪除游標前面的字元

#X
刪除游標前面的#個字元

dd
刪除游標所在的行

#dd
刪除從游標所在行數的#行

yw
復制游標所在位置的一個字

#yw
復制游標所在位置的#個字

yy
復制游標所在位置的一行

#yy
復制從游標所在行數的#行

p
粘貼

u
取消操作

cw
更改游標所在位置的一個字

#cw
更改游標所在位置的#個字

2、下表列出行命令模式下的一些指令
w filename
儲存正在編輯的文件為filename

wq filename
儲存正在編輯的文件為filename,並退出vi

q!
放棄所有修改,退出vi

set nu
顯示行號

/或?
查找,在/後輸入要查找的內容

n
與/或?一起使用,如果查找的內容不是想要找的關鍵字,按n或向後(與/聯用)或向前(與?聯用)繼續查找,直到找到為止。

對於第一次用vi,有幾點注意要提醒一下:
1、用vi打開文件後,是處於「命令行模式(command mode)」,您要切換到「插入模式(Insert mode)」才能夠輸入文字。切換方法:在「命令行模式(command mode)」下按一下字母「i」就可以進入「插入模式(Insert mode)」,這時候你就可以開始輸入文字了。
2、編輯好後,需從插入模式切換為命令行模式才能對文件進行保存,切換方法:按「ESC」鍵。
3、保存並退出文件:在命令模式下輸入:wq即可!(別忘了wq前面的:)

linux之vi命令

vi profile
返回

:q 退出
:wq或者:x或者shift+zz 保存並退出
:q! 不保存並退出
:w 保存
:w! 強制保存

編輯到輸入模式:
i 在當前游標前面輸入
I 在當前游標所在行的行首,轉換為輸入模式
a 在當前游標後面輸入
A 在當前游標所在行的行尾,轉換為輸入模式
o 在當前游標所在行的下方,新建一行,並轉為輸入模式
O 在當前游標所在行的上方,新建一行,並轉為輸入模式

1、 移動游標
字元:方向鍵上下左右或者鍵盤kjhl(上下左右)
單詞:w移至下一個單詞的詞首;e跳至當前或下一個單詞的詞尾;b跳至當前或前一個單詞的詞首
行內:0絕對行首;^行首的第一個非空白字元;$絕對行尾
行間:G文章末尾;3G第3行;gg文章開頭
翻屏:ctrl f【往後翻】;Ctrl b【往前翻】
2、 刪除、替換單個字元
x刪除游標位置字元;3x刪除游標開始3個字元;r替換游標位置字元
dw刪除一個單詞;4dw刪除游標開始的4個單詞;dd刪除游標所在行;5dd刪除游標開始的5行
3、復制粘貼剪切
yw復制一個單詞,p在該行粘貼單詞;yy復制整行,p在該行下方粘貼整行
dd剪切整行,p再粘貼整行;dw剪切一個單詞,p再粘貼一個單詞
4、 撤銷&重做
u:撤銷;ctrl+r:重做撤銷的操作;.重復上一步的操作【假設先dd,再.,會再執行dd命令】

1、 set設置
set nu
set nonu
set readonly #設置只讀文件,不能修改,只在當前環境有效,退出文件,再次打開,這個只讀就無效了
set noreadonly #取消只讀
2、 /查找
/after查找文檔中的after【可以找到所有的after】,n向下翻,N向上翻
:/after查找文檔中的after所在行【可以找到所有的after】,n向下翻,N向上翻
3、!執行命令
比如:查找root目錄
:!ls /root/
4、 查找並替換
格式
【 :查找范圍s/查找的詞/要替換的詞/ 】
或者【:查找范圍s#查找的詞#要替換的詞# 】
或者【:查找范圍s%查找的詞%要替換的詞%】,
即分隔符可以是/、#、%
其中, 查找范圍 包括【.當前游標行】;【$末尾行】;【%全文】;【g一行內全部替換】;【i忽略大小寫】
比如 【 :.,$s/after/before/】 表示在當前游標行【.】到末尾【$】這個范圍內,將after替換為before, 但是如果一行有多個after的話,只會把第一個after替換掉
比如 【 :%s/after/before/】 表示在全文,將after替換為before,但是如果一行有多個after的話,只會把第一個after替換掉。
比如 【:%s/after/before/g】 ,表示在全文,將after替換為before,但是 如果一行有多個after的話,會把該行所有after替換掉,因為在命令裡面加了g
比如 【:%s/after/before/gi】 ,表示在全文,將after替換為before,且忽略大小寫並替換一行內所有after。
比如 【 :%d或者dG】 ,表示刪除全文
比如 【:1,$-4d】 ,表示刪除第一行到倒數第5行的數據
比如 【:1,4y】 ,表示復制1到4行,再按p可粘貼這4行

❹ VI常用命令有哪些

cp復制cd切換目錄mv移動rm刪除df查看磁碟剩餘空間vivim編輯器還有什麼命令:你看看/bin/sbin/usr/bin這幾個文件夾就知道了。

❺ 請教VI的用法,如何在VI裡面使用查找命令

使用vi編輯器編輯長文件時
方法如下:

1、命令模式下輸入「/字元串」,例如「/Section 3」。

2、如果查找下一個,按「n」即可。

要自當前游標位置向上搜索,請使用以下命令:

/pattern Enter

其中,pattern表示要搜索的特定字元序列。

要自當前游標位置向下搜索,請使用以下命令:

?pattern Enter

按下 Enter鍵後,vi 將搜索指定的pattern,並將游標定位在 pattern的第一個字元處。
例如,要向上搜索 place一詞,請鍵入:
www.2cto.com
vi 查找替換大全

vi/vim 中可以使用 :s 命令來替換字元串。以前只會使用一種格式來全文替換,今天發現該命令
有很多種寫法(vi 真是強大啊,還有很多需要學習),記錄幾種在此,方便以後查詢。

:s/vivian/sky/ 替換當前行第一個 vivian 為 sky

:s/vivian/sky/g 替換當前行所有 vivian 為 sky

:n,$s/vivian/sky/ 替換第 n 行開始到最後一行中每一行的第一個 vivian 為 sky

:n,$s/vivian/sky/g 替換第 n 行開始到最後一行中每一行所有 vivian 為 sky

n 為數字,若 n 為 .,表示從當前行開始到最後一行

:%s/vivian/sky/(等同於 :g/vivian/s//sky/) 替換每一行的第一個 vivian 為 sky

:%s/vivian/sky/g(等同於 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky

可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符

:s#vivian/#sky/# 替換當前行第一個 vivian/ 為 sky/

:%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/ www.2cto.com

1.:s/vivian/sky/ 替換當前行第一個 vivian 為 sky

:s/vivian/sky/g 替換當前行所有 vivian 為 sky

2. :n,$s/vivian/sky/ 替換第 n 行開始到最後一行中每一行的第一個 vivian 為 sky

:n,$s/vivian/sky/g 替換第 n 行開始到最後一行中每一行所有 vivian 為 sky

(n 為數字,若 n 為 .,表示從當前行開始到最後一行)

3. :%s/vivian/sky/(等同於 :g/vivian/s//sky/) 替換每一行的第一個 vivian 為 sky

:%s/vivian/sky/g(等同於 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky

4. 可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符

:s#vivian/#sky/# 替換當前行第一個 vivian/ 為 sky/

5. 刪除文本中的^M

問題描述:對於換行,window下用回車換行(0A0D)來表示,Linux下是回車(0A)來表示。這樣,將window上的文件拷到Unix上用時,總會有個^M.請寫個用在unix下的過濾windows文件的換行符(0D)的shell或c程序。 www.2cto.com

· 使用命令:cat filename1 | tr -d 「^V^M」 > newfile;

· 使用命令:sed -e 「s/^V^M//」 filename > outputfilename。需要注意的是在1、2兩種方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必須要手工進行輸入,而不是粘貼。

· 在vi中處理:首先使用vi打開文件,然後按ESC鍵,接著輸入命令:%s/^V^M//。

· :%s/^M$//g

如果上述方法無用,則正確的解決辦法是:

· tr -d "\r" < src >dest

· tr -d "\015" dest

· strings A>B

6. 其它

利用 :s 命令可以實現字元串的替換。具體的用法包括:

:s/str1/str2/ 用字元串 str2 替換行中首次出現的字元串 str1

:s/str1/str2/g 用字元串 str2 替換行中所有出現的字元串 str1
www.2cto.com
:.,$ s/str1/str2/g 用字元串 str2 替換正文當前行到末尾所有出現的字元串 str1

:1,$ s/str1/str2/g 用字元串 str2 替換正文中所有出現的字元串 str1

:g/str1/s//str2/g 功能同上

從上述替換命令可以看到:g 放在命令末尾,表示對搜索字元串的每次出現進行替換;不加 g,表示只對搜索

字元串的首次出現進行替換;g 放在命令開頭,表示對正文中所有包含搜索字元串的行進行替換操作。

❻ AIX中的vi常用命令

本文適用於AIX系統的vi編輯器,不兼容vim

測試環境: AIX 7.1

vi編輯器包括三種模式:

在編輯模式/命令模式下,通過ESC返回普通模式

如,右移20列寫作 20l

長單詞:以空格(space)、製表符(tab)、回車(enter)作為分隔符
短單詞:包括*()-等均視為分隔符
例如: if(a > 0) 中,長單詞包括 if(a 、 > 、 0) 3個,短單詞包括 if 、 ( 、 a 、 > 、 0 、 ) 6個

f=forward,b=backward,u=up,d=down
%適用於大中小三種括弧

/+n :正向搜索
/+N :逆向搜索
?+n :逆向搜索
?+N :正向搜索

對於組合命令,可以通過ESC取消

示例:逐詞替換

控制字元指ASCII碼中0x01-0x1F區間的不可見字元,主要用於程序控制。
在編輯模式下,輸入: crtl-v , ctrl-控制字元
例如回車(0x0D)輸入: ctrl-v , ctrl-m ,在vi中顯示為 ^M

❼ linux用VI編輯後保存退出命令是什麼啊

先按ESC進入Command模式,然後輸入「:wq」,回車就可以保存並退出了。

vi的其他保存/退出命令:

:w 保存;

:w filename 另存為filename;

:wq! 保存並強制退出;

:wq! filename 註:以filename為文件名保存後強制退出;

:q! 強制退出;

:x 保存並退出(僅當文件有變化時保存)

(7)vi中的命令擴展閱讀:

vi有三種工作模式:命令模式、文本編輯模式和最後行模式。不同工作模式下的操作方法有所不同。

1、命令行模式

該模式是進入vi編輯器後的默認模式。任何時候,不管用戶處於何種模式,按下Esc鍵即可進入命令模式。

在命令模式下,用戶可以輸入vi命令,用於管理自己的文檔。此時從鍵盤上輸入的任何字元都被當做編輯命令來解釋。若輸入的字元是合法的vi命令,則vi在接受用戶命令之後完成相應的動作。但需注意的是,所輸入的命令並不回顯在屏幕上。若輸入的字元不是vi的合法命令,vi 會響鈴報警。

2、文本輸入模式

在命令模式下輸入插入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。

在該模式下,用戶輸入的任何字元都被vi當做文件內容保存起來,並將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按下Esc鍵即可。

3、末行模式

末行模式也稱 ex 轉義模式。在命令模式下,用戶按:鍵即可進入末行模式下,此時vi會在顯示窗口的最後一行(通常也是屏幕的最後一行)顯示一個:作為末行模式的說明符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。

末行命令執行完後,vi 自動回到命令模式。

❽ vi的用法

vi 命令 是UNIX操作系統和類UNIX操作系統中最通用的全屏幕純文本編輯器。

vi編輯器支持編輯模式和命令模式,編輯模式下可以完成文本的編輯功能,命令模式下可以完成對文件的操作命令,要正確使用vi編輯器就必須熟練掌握著兩種模式的切換。默認情況下,打開vi編輯器後自動進入命令模式。從編輯模式切換到命令模式使用「esc」鍵,從命令模式切換到編輯模式使用"A"、"a"、"O"、"o"、"I"、"i"鍵。

vi編輯器的三種工作方式之間的轉換如圖所示。

vi編輯器提供了豐富的內置命令,有些內置命令使用鍵盤組合鍵即可完成,有些內置命令則需要以冒號「:」開頭輸入。常用內置命令如下:

vi(選項)(參數)

知識擴展

vi編輯器有三種工作方式:命令方式、輸入方式和ex轉義方式。通過相應的命令或操作,在這三種工作方式之間可以進行轉換。

命令方式

在Shell提示符後輸入命令vi,進入vi編輯器,並處於vi的命令方式。此時,從鍵盤上輸入的任何字元都被作為編輯命令來解釋,例如,a(append)表示附加命令,i(insert)表示插入命令,x表示刪除字元命令等。如果輸入的字元不是vi的合法命令,則機器發出「報警聲」,游標不移動。另外,在命令方式下輸入的字元(即vi命令)並不在屏幕上顯示出來,例如,輸入i,屏幕上並無變化,但通過執行i命令,編輯器的工作方式卻發生變化:由命令方式變為輸入方式。

輸入方式

通過輸入vi的插入命令(i)、附加命令(a)、打開命令(o)、替換命令(s)、修改命令(c)或取代命令(r)可以從命令方式進入輸入方式。在輸入方式下,從鍵盤上輸入的所有字元都被插入到正在編輯的緩沖區中,被當做該文件的正文。進入輸入方式後,輸入的可見字元都在屏幕上顯示出來,而編輯命令不再起作用,僅作為普通字母出現。例如,在命令方式下輸入字母i,進到輸入方式,然後再輸入i,就在屏幕上相應游標處添加一個字母i。

由輸入方式回到命令方式的辦法是按下Esc鍵。如果已在命令方式下,那麼按下Esc鍵就會發出「嘟嘟」聲。為了確保用戶想執行的vi命令是在命令方式下輸入的,不妨多按幾下Esc鍵,聽到嘟聲後再輸入命令。

ex 轉義方式

vi和ex編輯器的功能是相同的,二者的主要區別是用戶界面。在vi中,命令通常是單個字母,如a,x,r等。而在ex中,命令是以Enter;鍵結束的命令行。vi有一個專門的「轉義」命令,可訪問很多面向行的ex命令。為使用ex轉義方式,可輸入一個冒號(:)。作為ex命令提示符,冒號出現在狀態行(通常在屏幕最下一行)。按下中斷鍵(通常是Del鍵),可終止正在執行的命令。多數文件管理命令都是在ex轉義方式下執行的(例如,讀取文件,把編輯緩沖區的內容寫到文件中等)。轉義命令執行後,自動回到命令方式。例如:

則從文件第一行至文件末尾($)將大寫I全部替換成小寫i

❾ Linux vi 操作命令

進入vi的命令
vi filename :打開或新建文件,並將游標置於第一行首
vi +n filename :打開文件,並將游標置於第n行首
vi + filename :打開文件,並將游標置於最後一行首
vi +/pattern filename:打開文件,並將游標置於第一個和pattern匹配的串處
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename....filename :打開多個文件,依次進行編輯
移動游標類命令
h :游標左移一個字元
l :游標右移一個字元
space:游標右移一個字元
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:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
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刪除游標前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令
/pattern:從游標開始處向文件尾搜索pattern
?pattern:從游標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
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:顯示由面向行的命令修改過的數目
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:退出vi
:q!:不保存文件並退出vi
:!command:執行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行
寄存器操作
"?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyl:將當前行及其下n個字元保存到寄存器?中,其中?為一個字母,n為一個數字
"?p:取出寄存器?中的內容並將其放到游標位置處。這里?能是個字母,也能是個數字
ndd:將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中。
進入vi
vi test
離開vi
:q! 離開vi,並放棄剛在緩沖區內編輯的內容。
:wq 將緩沖區內的資料寫入磁碟中,並離開vi。
:ZZ 同wq
同wq
:w 將緩沖區內的資料寫入磁碟中,但並不離開vi。
:q 離開vi,若文件被修改過,則會被需求確認是否放棄修改的內容,此指令可和: w 配合使用。
Vi 的操作模式
Vi 提供兩種操作模式:
輸入模式(insert mode)
指令模式(command mode)
當使用者進入vi後,既處於指令模式下,此刻鍵入所有字元皆被視為指令。
輸入模式:a(append) 游標之後加入資料。
A 該行之末加入資料
i (insert) 游標之前加入資料
I 該行之首加入資料
o (open) 新增一行和該行之下供輸入資料
O 新增一行和該行之上供輸入資料
指令模式:B 移至該行第一個字元,若游標在該行第一字元則游標移至上一行第一字元。
b 由游標所在位置之前一個字串的第一個字元
cc 刪除整行,修改整行的內容。
D 以行為單位,刪除游標在內後面的所有字元。
db 刪除該行游標前字元
dd 刪除該行
de 刪除自游標開始後面的字元
d加字元刪除游標所在位置至字元之間的單
E移至該行最後字元,若游標在該行最後字元則游標移至下一行最後字元
e由游標所在位置至該字串的最後一個字元
G 移至該檔案的最後一行
h 向前移一個字元
j 向下移一個字元
k 向上移一個字元
0 移至該行之首
M 移至視窗的中間那行
L 移至視窗的最後一行
l 向後移一個字元
0 由游標所在位置該行的第一個字元
nG 移至該檔案的第n行
n+ 自游標所在位置向後移n行至該行的第一字元
n- 自游標所在位置向前移n行至該行的第一字元
R 進入取代狀態,直到《ESC》為止
s 刪除游標所在字元,並進入取代模式直到《ESC》
S 刪除游標所在之該行資料,並進入輸入模式直到《ESC》
w 由游標所在位置之下一個字串的第一個字元
x 刪除游標所在該字元。
X 刪除游標所在之前一字元。
r 用接於此指令之後的字元取代(replace)游標所在字元
yy yank整行,使游標所在該行復制到記憶體緩沖區
顯示該行之行號、檔案名稱、檔案中最末之行號、游標所在行號占
總行號之百分比
$ 由游標所在位置至該行的最後一個字元。
) 由游標所在位置至下一個句子的第一個字元。
( 由游標所在位置至該句子的第一個字元。
{ 由游標所在位置至該段落的最後一個字元。
} 由游標所在位置至該段落的第一個字元
yank和delete可將指定的資料復制到記憶體緩沖區,而藉有put指令可將緩沖區內的資料復制到熒幕上
例如:搬移一行 :在該行執行dd
游標移至目的地
執行p
復制一行 :在該行執行yy
游標移至目的地
執行p
視窗移動:
視窗往下卷一頁
視窗往上卷一頁
視窗往下卷半頁
視窗往上卷半頁
視窗往下卷一行
視窗往上卷一行
刪除、復制及修改指令介紹:
d(delete)、c(change)和y(yank)這一類的指令在vi 中的指令格式為:
operation+scope=command
(運運算元)(范圍)
運運算元:
d 刪除指令。刪除資料,但會將刪除資料復制到記憶體緩沖區。
y 將資料(字組、行列、句子或段落)復制到緩沖區。
p 放置(put)指令,和d和y配合使用。可將最後delete或yank的資料放置於游標所在位置之行列下。
c 修改(change)指令,類似delete於insert的組合。刪除一個字組、句子等資料,並插入新鍵入的

❿ linux中vi常用的命令

[語法]:vi [-wn] [-R] 文件…
[說明]: vi 是一個基於行編輯器 ex 上的全屏幕編輯器,可以在vi 中使用 ex,ed的全部命令,vi選項中 -wn 指將編輯窗口大小置為n行,-R 為將編輯的文件置為只讀模式, 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 寫文件之前不作對文件的檢查

閱讀全文

與vi中的命令相關的資料

熱點內容
匯編程序員待遇 瀏覽:357
怎麼批量有順序的命名文件夾 瀏覽:209
杭州程序員健身 瀏覽:17
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362