vi編輯器入門
基本的vi編輯器指令
進入vi編輯器
啟動vi
退出vi
// 使vi處于指令模式
[Esc]
// 儲存并退出
:wq
// 退出
:q
// 強行退出
:q!
移動光标鍵
h或[←] 将光标向左移動一格
j或[↓] 将光标向下移動一格
k或[↑] 将光标向上移動一格
l或[→] 将光标向右移動一格
文本輸入模式
i 在光标左側輸入正文
I 在光标所在行的開頭輸入正文
a 在光标右側輸入正文
A 在光标所在行的結尾輸入正文
o 在光标所在行的下一行增添新行,并且光标位于新行的開頭
O 在光标所在行的上一行增添新行,并且光标位于新行的開頭
指令模式
光标移動鍵
h或[←] 将光标向左移動一格
j或[↓] 将光标向下移動一格
k或[↑] 将光标向上移動一格
l或[→] 将光标向右移動一格
$ 将光标移到目前行的行尾
w 将光标向右移動一個字
e 将光标移動到行尾
0 将光标移動到行首
[return] 将光标移動到下一行的行首
[spacebar] 将光标向右移動一格
[backspace]将光标向左移動一格
文本修改
x 删除光标位置指定的字元
dd 删除光标所在的行
u 撤銷最近的修改
U 撤銷對目前行所做的所有修改
r 替換光标位置上的一個字元
R 替換從光标位置開始的字元,同時改變vi到文本輸入模式
. 重複上一次的修改
退出vi編輯器
wq 儲存檔案,退出vi編輯器
w 儲存檔案,但不退出vi編輯器
q 退出vi編輯器
q! 不儲存檔案,退出vi編輯器
ZZ 儲存檔案,退出vi編輯器
Linux:vi線上幫助
在指令模式下,輸入:help[return]可以顯式一個幫助文檔
在幫助文檔中,輸入:q[return]退出幫助文檔,回到檔案内容
存儲緩沖區
vi編輯器為使用者所要建立和修改的檔案建立一個臨時的工作區
vi編輯器進階用法
vi編輯器的啟動
啟動vi編輯器
在不提供檔案名而啟動vi編輯器
輸入vi和[return],進入文本編輯模式,此時編輯的内容全部在緩沖區中
輸入:w <filename>将緩沖區的内容儲存在檔案<filename>中,不退出vi編輯器
輸入:w! <filename>将緩沖區的内容儲存在檔案<filename>中,并覆寫原檔案,不退出vi編輯器
輸入:wq <filename>将緩沖區的内容儲存在檔案<filename>中,并退出vi編輯器
使用vi的啟動選項
打開和退出隻讀檔案
vi -r <filename>
view <filename> 通過隻讀的方式打開檔案
:q 或者 :q! 強制退出隻讀檔案
打開檔案并執行指令
編輯多個檔案
vi <file1> <file2> ... 同時打開多個檔案清單
:n 立即打開檔案清單中的下一個檔案
:n! 強制打開檔案清單中的下一個檔案
ar:檢視檔案清單
//編輯另一個檔案
:e <file>
//讀另一個檔案
:r <file>
//寫入另一個檔案
:start_line, end_line w <file>
重排文本
移動行
dd 删除目前行,并且把目前行複制到緩沖區
p 将被删除的行放到目前行下
P 将被删除的行放到目前行上
複制行
yy 将目前行複制到緩沖區
p 将被删除的行放到目前行下
P 将被删除的行放到目前行上
vi操作符的域
指令 = 操作符 + 域
$ 辨別域為從光标位置開始到目前行尾
0 辨別域為從光标位置開始到目前行首
e或w 辨別域為從光标位置到目前字尾
b 辨別域為從光标位置到目前字首
使用删除操作符和域控制鍵
d$ 删除從目前光标到行尾的文本
d0 删除從目前光标到行首的文本
dw 删除光标後的一個字,光标向後移
3dw 删除光标後的三個字
de 删除光标後的一個字,光标不向後移
db 删除到前一個字的自首
使用複制操作符和域控制鍵
y$ 将光标到行尾的字元指派,光标位置不變
p 将複制的文本放到光标位置後
P 将複制的文本放到光标位置前
使用修改操作符和與控制鍵
cw 在目前字尾放置标記,然後轉入文本輸入模式
輸入新的文本
[esc] 将新的文本替換舊文本
在vi中使用緩沖區
vi編輯器中有多個用于臨時存儲的緩沖區。有兩類臨時緩沖區:數字編号緩沖區和命名緩沖區
數字編号緩沖區
vi使用數字1~9為9個緩沖區進行編号,數字編号越小的緩沖區儲存最新的内容
"9p 表示将編号為9的緩沖區的文本複制到光标區域
字母編号緩沖區
vi使用字母a~z來為26個緩沖區進行命名
這些緩沖區中的内容沒有自動替換,而是使用者對緩沖區進行操作
光标定位鍵
[ctrl-d] 光标向下移動,每次移動12行
[ctrl-u] 光标向上移動,每次移動12行
[ctrl-f] 光标向下移動,每次移動24行
[ctrl-b] 光标向上移動,每次移動24行
通過行号定位
1000G 定位到第1000行
G 定位到檔案尾
定制vi編輯器
:set all 檢視完整參數清單和它們在系統上的設定
選項的格式
布爾值
set X 打開
set noX 關閉
數字
set X=12 将數字選項指派為12
串選項
set X=PPP
set指令
:set all 顯示所有選項
:set 顯示已修改過的項
:set X? 顯示目前項的值
設定vi的環境
設定vi編輯器中的環境
行長和行回繞
螢幕終端通常隻有80列,可指定vi編輯器在80-wrapmargin前自動換行
縮寫與宏
縮寫:為文本輸入定義縮寫
ab <縮寫> <原句>
unab <縮寫> <原句>
宏:為指令定義縮寫
map <縮寫> <原指令>
unmap <縮寫> <原指令>
.exrc 檔案
使用者在vi編輯器中設定的參數是臨時儲存的,永久儲存需要在.exrc檔案中設定
當vi啟動時,首先在目前目錄下尋找.exrc檔案,如果沒有,則檢查主目錄,如果主目錄中沒有,則使用預設值
.exrc中的設定與vi編輯器中的指令一樣
其他vi指令
運作shell指令
可以在指令模式輸入shell指令:vi編輯器将清屏并執行shell指令,按任意鍵傳回vi編輯器
行連接配接
使用J指令連接配接兩行