vi編輯器,通常稱之為vi,是一種廣泛存在于各種UNIX和linux系統中的文本編輯程序。它的功能十分強大,但是命令繁多,不容易掌握,它可以執行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據自己的需要對其進行定制,這是其他編輯程序所沒有的。vi不是基于窗口的,所以,這個多用途編輯程序可以用于在任何類型的終端上編輯各式各樣的文件。
本文地址:http://www.CUOXin.com/archimedes/p/linux-vi.html,轉載請注明源地址。
vi編輯器的三種模式1、命令模式
在該模式中,可輸入命令來執行許多種功能??刂破聊还鈽说囊苿?,字符、字或行的刪除,移動復制某區段及進入Insert mode下,或者到 last line mode
2、編輯模式
vi被運行時,通常處在命令模式下,鍵入以下命令 可以使vi退出命令模式,進入輸入模式:I(i)、A(a)、O(o)
3、末行模式
將文件保存或退出vi,也可以設置編輯環境,如尋找字符串、列出行號……等。不過一般我們在使用時把vi簡化成兩個模式,將末行模式也算入命令行模式
進入vi:
命令“vi 文件名”
命令“vi”,在退出vi時再指定文件名
選項“+n”,表示希望在進入vi之后,光標處于文件中第n行上
選項“+”表示希望在進入vi之后光標處于文件最末行。
保存文件:1.在命令模式下,連按兩次大寫字母<Z>
2.在末行模式下:
:w vi保存當前編輯的文件,但并不退出vi,而是繼續等待用戶輸入命令
:w <newfile>
:w! <newfile> 把當前文件的內容保存到指定的文件newfile中,如果newfile已經存在,則覆蓋原有內容
在末行模式下,有四種方法可以退出vi返回到shell::q 系統退出vi返回到shell。在用此命令時,若編輯的文件沒有被保存,則vi在窗口的最末行給出提示信息。
:q! vi放棄所作修改而直接退到shell下。
:wq 先保存文件,然后再退出vi返回到shell。
:x 該命令的功能與命令模式下的ZZ命令功能相同
如何進入插入模式a (append) 由光標之后加入資料
A 由該行之末加入資料
i (insert) 由光標之前加入資料
I 由該行之首加入資料
o (open) 新增一行于該行之下供輸入資料之用
O 新增一行于該行之上供輸入資料之用
如何離開插入模式ESC 結束插入模式
如何進入末行模式先按ESC鍵:/?
VI環境的設定set nu: 添加行號顯示
set nonu: 取消行號顯示
set autoindent: 自動縮進
set noautoindent: 取消自動縮進
查找在vi中可搜尋某一字串,使光標移至該處
/字串 往光標之后尋找該字串
?字串 往光標之前尋找該字串
n 往下繼續尋找下一個相同的字串
N 往上繼續尋找下一個相同的字串
取消前一動作(Undo)即復原執行上一指令前的內容
u 恢復最后一個指令之前的結果
U 恢復光標該行之所有改變
編輯多個文件vi亦提供同時編輯多個文件的功能,方法如下:#vi file1 file2 ..
當第一個文件編輯完成后,可利用『:w』將該緩沖區存檔,而后再利用 『:n』載入下一個文件
同時vi多個文件時,CTRL-SHIFT-6回到上一個文件,在本次vi的文件和上次vi的文件之間切換。也可以使用:e#進行切換
字串搜尋與替換s(substitute)指令可搜尋某行列范圍
g(global)指令則可搜尋整個編輯緩沖區的資料
:1,%s/old/new/g 將文件中所有的“old”改成“new”
:10,20s/old/new/ 將第10行至第20行資料的“old”改成“new”
:%s/old/new/g 將編輯緩沖區中所有的“old”改成“new”
:1,%s/^/string1 在文件的第一行至最后一行的行首插入“string1”
:%s/$/some string/g 在整個文件每一行的行尾添加“some string”
:1,%s/Word1/word2/gc 從第一行到最后一行尋找word1 字串,并將該字串替換為 word2 。需要逐一確認
vi的編輯操作命令在vi中“字”有兩種含義:
廣義上,字是兩個空格之間的任何內容
狹義上,字是指英文單詞、標點符號和非字母字符
句子被定義為是以句號“.”、問號“?”和感嘆號“!”結尾,且其后跟著至少一個空格或一個換行符的字符序列。
段被定義為以一個空白行開始和結束的片段
在當前行移動光標的命令h 將光標左移一格
l 將光標右移一格
j 將光標下移一格
k 將光標上移一格
0 把光標移到當前行的第一個字符處
$ 把光標移到當前行的最后一個字符處
在行之間移動光標的命令Ctrl + f向后滾一頁
Ctrl + d向后滾半頁
Ctrl + b向前滾一頁
Ctrl + u向前滾半頁
Ctrl + e屏幕向下滾一行
Ctrl + y屏幕項上滾一行
nG 將光標移至行號所指定的行的行首
在文本塊間移動光標的命令) 由光標所在位置至下一個句子的第一個字元
( 由光標所在位置至該句子的第一個字元
{ 由光標所在位置至該段落的最后一個字元
} 由光標所在位置至該段落的第一個字元
屏幕上移動H命令:該命令將光標移至屏幕首行的行首.若在H命令之前加上數字n,則將光標移至屏幕第n行的行首。
M命令: 該命令將光標移至屏幕顯示文件的中間行的行首。
L命令:該命令將光標移至屏幕顯示文件的底行的行首。
G命令:該命令將光標移至該文件的最后一列
命令模式下的文本編輯 /文本的刪除字符刪除命令:x dh
字和行刪除命令dw db dd d$ d0 <n>dd
文本塊刪除命令:d) d( d} d{
相對屏幕刪除:dH dM dL
刪除操作x:刪除光標所在的文字
nx:刪除光標后面的n個字符
X:刪除光標前面的一個字符
nX:刪除光標前面的n個字符
dd:刪除光標所在行
ndd:刪除光標所在行向下數n行
復制命令方式下輸入yy或nyy,表示復制當前行或當前行開始的連續n行,n是一個具體的整數
將光標移到要復制的地方,按p鍵粘貼
vi編輯器的簡單使用插入文字 I鍵 A鍵
x:刪除光標所在的文字
退回命令模式 ESC
存盤 :w
不存盤退出 :q
存盤退出 :wq
強制退出 :q!
強制存盤退出 :wq!
vi其他常用命令刪除一行文字 dd
拷貝n行文字 yny
粘貼拷貝的內容 p
在文件中向下搜索文本abc /abc
光標移至文本第一行 :1
光標移至文本末行 :$ 或者 G
存盤退出 ZZ
新聞熱點
疑難解答