-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 景觀設(shè)計(jì) > 專題列表 > 正文
vi編輯器怎么執(zhí)行程序(vi編輯器怎么執(zhí)行命令)
大家好!今天讓小編來大家介紹下關(guān)于vi編輯器怎么執(zhí)行程序的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,相關(guān)業(yè)務(wù)請(qǐng)撥打電話:175-8598-2043,或添加微信:1454722008
文章目錄列表:
一、linux中vi編輯器怎樣使用
Vim 是 Vi improved 的縮寫,是 vi 的改進(jìn)版。在Linux中,vi 被認(rèn)為是事實(shí)上的標(biāo)準(zhǔn)編輯器,因?yàn)椋?/p>
所有版本的 Linux 都帶有 vi 編輯器;
占用資源少;
與 ed、ex 等其他編輯器相比,vi 對(duì)用戶更加友好。
你可以使用 vi 編輯器編輯現(xiàn)有的文件,也可以創(chuàng)建一個(gè)新文件,還能以只讀模式打開文本文件。
進(jìn)入 vi 編輯器
可以通過以下方式進(jìn)入 vi 編輯器:
命令
描述
vi filename 如果filename存在,則打開;否則會(huì)創(chuàng)建一個(gè)新文件再打開。
vi -R filename 以只讀模式(只能查看不能編輯)打開現(xiàn)有文件。
view filename 以只讀模式打開現(xiàn)有文件。
例如,使用 vi 編輯器創(chuàng)建一個(gè)新文件并打開:$vi testfile
|
~
~
~
~
~
~
~
~
~
~
~
~
"testfile" [New File]
豎線(|)代表光標(biāo)的位置;波浪號(hào)(~)代表該行沒有任何內(nèi)容。如果沒有 ~,也看不到任何內(nèi)容,那說明這一行肯定是有空白字符(空格、tab 縮進(jìn)、換行符等)或不可見字符。
工作模式
進(jìn)一步了解 vi 之前先來了解一下 vi 的工作模式,vi 有三種工作模式:
1) 普通模式
由Shell進(jìn)入vi編輯器時(shí),首先進(jìn)入普通模式。在普通模式下,從鍵盤輸入任何字符都被當(dāng)作命令來解釋。普通模式下沒有任何提示符,輸入命令后立即執(zhí)行,不需要回車,而且輸入的字符不會(huì)在屏幕上顯示出來。
普通模式下可以執(zhí)行命令、保存文件、移動(dòng)光標(biāo)、粘貼復(fù)制等。
2) 編輯模式
編輯模式主要用于文本的編輯。該模式下用戶輸入的任何字符都被作為文件的內(nèi)容保存起來,并在屏幕上顯示出來。
3) 命令模式
命令模式下,用戶可以對(duì)文件進(jìn)行一些高級(jí)處理。盡管普通模式下的命令可以完成很多功能,但要執(zhí)行一些如字符串查找、替換、顯示行號(hào)等操作還是必須要進(jìn)入命令模式。
注意:有些教程中稱有兩種工作模式,是把命令模式合并到普通模式。
工作模式切換:
在普通模式下輸入 i(插入)、c(修改)、o(另起一行) 命令時(shí)進(jìn)入編輯模式;按 esc 鍵退回到普通模式。
在普通模式下輸入冒號(hào)(:)可以進(jìn)入命令模式。輸入完命令按回車,命令執(zhí)行完后會(huì)自動(dòng)退回普通模式。
提示:如果不確定當(dāng)前處于哪種模式,按兩次 Esc 鍵將回到普通模式。
退出 vi 編輯器
一般在命令模式下退出 vi 編輯器。
退出命令
說明
q 如果文件未被修改,會(huì)直接退回到Shell;否則提示保存文件。
q! 強(qiáng)行退出,不保存修改內(nèi)容。
wq w 命令保存文件,q 命令退出 vi,合起來就是保存并退出。
ZZ 保存并退出,相當(dāng)于 wq,但是更加方便。
退出之前,你也可以在 w 命令后面指定一個(gè)文件名,將文件另存為新文件,例如:w filename2
將當(dāng)前文件另存為 filename2。
注意:vi 編輯文件時(shí),用戶的操作都是基于緩沖區(qū)中的副本進(jìn)行的。如果退出時(shí)沒有保存到磁盤,則緩沖區(qū)中的內(nèi)容就會(huì)被丟失。
移動(dòng)光標(biāo)
為了不影響文件內(nèi)容,必須在普通模式(按兩次 Esc 鍵)下移動(dòng)光標(biāo)。使用下表中的命令每次可以移動(dòng)一個(gè)字符:
命令
描述
k 向上移動(dòng)光標(biāo)(移動(dòng)一行)
j 向下移動(dòng)光標(biāo)(移動(dòng)一行)
h 向左移動(dòng)光標(biāo)(移動(dòng)一個(gè)字符)
l 向右移動(dòng)光標(biāo)(移動(dòng)一個(gè)字符)
兩點(diǎn)提醒:
vi 是區(qū)分大小寫的,輸入命令時(shí)注意不要鎖定大寫。
可以在命令前邊添加一個(gè)數(shù)字作為前綴,例如,2j 將光標(biāo)向下移動(dòng)兩行。
當(dāng)然,還有很多其他命令來移動(dòng)光標(biāo),不過記住,一定要在普通模式(按兩次 Esc 鍵)下。
用來移動(dòng)光標(biāo)的命令
命令
說明
0 或 | 將光標(biāo)定位在一行的開頭。
$ 將光標(biāo)定位在一行的末尾。
w 定位到下一個(gè)單詞。
b 定位到上一個(gè)單詞。
( 定位到一句話的開頭,句子是以 ! . ? 三種符號(hào)來界定的。
) 定位到一句話的結(jié)尾。
{ 移動(dòng)到段落開頭。&&&&&&
} 移動(dòng)到段落結(jié)束。&&&&&&&&&
[[ 回到段落的開頭處。&&&&&&&&&&
]] 向前移到下一個(gè)段落的開頭處。&&&&&&&&&&
n| 移動(dòng)到第 n 列(當(dāng)前行)。
1G 移動(dòng)到文件第一行。
G 移動(dòng)到文件最后一行。
nG 移動(dòng)到文件第 n 行。
:n 移動(dòng)到文件第 n 行。
H 移動(dòng)到屏幕頂部。
nH 移動(dòng)到距離屏幕頂部第 n 行的位置。
M 移動(dòng)到屏幕中間。
L 移動(dòng)到屏幕底部。
nL 移動(dòng)到距離屏幕底部第 n 行的位置。
:x x 是一個(gè)數(shù)字,表示移動(dòng)到行號(hào)為 x 的行。
控制命令
有一些控制命令可以與 Ctrl 鍵組合使用,如下:
命令
描述
CTRL+d 向前滾動(dòng)半屏
CTRL+f 向前滾動(dòng)全屏
CTRL+u 向后滾動(dòng)半屏
CTRL+b 向后滾動(dòng)整屏
CTRL+e 向上滾動(dòng)一行
CTRL+y 向下滾動(dòng)一行
CTRL+I 刷新屏幕
編輯文件
切換到編輯模式下才能編輯文件。有很多命令可以從普通模式切換到編輯模式,如下所示:
命令
描述
i 在當(dāng)前光標(biāo)位置之前插入文本
I 在當(dāng)前行的開頭插入文本
a 在當(dāng)前光標(biāo)位置之后插入文本
A 在當(dāng)前行的末尾插入文本
o 在當(dāng)前位置下面創(chuàng)建一行
O 在當(dāng)前位置上面創(chuàng)建一行
刪除字符
下面的命令,可以刪除文件中的字符或行:
命令
說明
x 刪除當(dāng)前光標(biāo)下的字符
X 刪除光標(biāo)前面的字符
dw 刪除從當(dāng)前光標(biāo)到單詞結(jié)尾的字符
d^ 刪除從當(dāng)前光標(biāo)到行首的字符
d$ 刪除從當(dāng)前光標(biāo)到行尾的字符
D 刪除從當(dāng)前光標(biāo)到行尾的字符
dd 刪除當(dāng)前光標(biāo)所在的行
可以在命令前面添加一個(gè)數(shù)字前綴,表示重復(fù)操作的次數(shù),例如,2x 表示連續(xù)兩次刪除光標(biāo)下的字符,2dd 表示連續(xù)兩次刪除光標(biāo)所在的行。
建議各位讀者多加練習(xí)上面的命令,再進(jìn)一步深入學(xué)習(xí)。
修改文本
如果你希望對(duì)字符、單詞或行進(jìn)行修改,可以使用下面的命令:
命令
描述
cc 刪除當(dāng)前行,并進(jìn)入編輯模式。
cw 刪除當(dāng)前字(單詞),并進(jìn)入編輯模式。
r 替換當(dāng)前光標(biāo)下的字符。
R 從當(dāng)前光標(biāo)開始替換字符,按 Esc 鍵退出。
s 用輸入的字符替換當(dāng)前字符,并進(jìn)入編輯模式。
S 用輸入的文本替換當(dāng)前行,并進(jìn)入編輯模式。
粘貼復(fù)制
vi 中的復(fù)制粘貼命令:
命令
描述
yy 復(fù)制當(dāng)前行
nyy 復(fù)制n行
yw 復(fù)制一個(gè)字(單詞)
nyw 復(fù)制n行
p 將復(fù)制的文本粘貼到光標(biāo)后面
P 將復(fù)制的文本粘貼到光標(biāo)前面
高級(jí)命令
下面的一些命令雖然看起來有些古怪,但是會(huì)讓你的工作更有效率,如果你是 vi 重度用戶,就了解一下吧。
命令
說明
J 將當(dāng)前行和下一行連接為一行
<< 將當(dāng)前行左移一個(gè)單位(一個(gè)縮進(jìn)寬度)
>> 將當(dāng)前行右移一個(gè)單位(一個(gè)縮進(jìn)寬度)
~ 改變當(dāng)前字符的大小寫
^G Ctrl+G組合鍵可以顯示當(dāng)前文件名和狀態(tài)
U 撤銷對(duì)當(dāng)前行所做的修改
u 撤銷上次操作,再次按 'u' 恢復(fù)該次操作
:f 以百分號(hào)(%)的形式顯示當(dāng)前光標(biāo)在文件中的位置、文件名和文件的總行數(shù)
:f filename 將文件重命名為 filename
:w filename 保存修改到 filename
:e filename 打開另一個(gè)文件名為 filename 的文件
:cd dirname 改變當(dāng)前工作目錄到 dirname
:e # 在兩個(gè)打開的文件之間進(jìn)行切換
:n 如果用 vi 打開了多個(gè)文件,可以使用 :n 切換到下一個(gè)文件
:p 如果用 vi 打開了多個(gè)文件,可以使用 :n 切換到上一個(gè)文件
:N 如果用 vi 打開了多個(gè)文件,可以使用 :n 切換到上一個(gè)文件
:r file 讀取文件并在當(dāng)前行的后邊插入
:nr file 讀取文件并在第 n 行后邊插入
文本查找
如果希望進(jìn)行全文件搜索,可以在普通模式(按兩次 Esc 鍵)下輸入 / 命令,這時(shí)狀態(tài)欄(最后一行)出現(xiàn)"/"并提示輸入要查找的字符串,回車即可。
/ 命令是向下查找,如果希望向上查找,可以使用 ? 命令。
這時(shí),輸入 n 命令可以按相同的方向繼續(xù)查找,輸入 N 命令可以按相反的方向繼續(xù)查找。
搜索的字符串中可以包含一些有特殊含義的字符,如果希望搜索這些字符本身,需要在前面加反斜杠(\)。
部分特殊字符列表
字符
說明
^ 匹配一行的開頭
. 匹配一個(gè)字符
* 匹配0個(gè)或多個(gè)字符
$ 匹配一行的結(jié)尾
[ ] 匹配一組字符
如果希望搜索某行中的單個(gè)字符,可以使用 f 或 F 命令,f 向上搜索,F(xiàn) 向下搜索,并且會(huì)把光標(biāo)定位到匹配的字符。
也可以使用 t 或 T 命令:t 命令向上搜索,并把光標(biāo)定位到匹配字符的前面;T 命令向下搜索,并把光標(biāo)定位到匹配字符的后面。
set 命令
set 命令可以對(duì) vi 編輯器進(jìn)行一些設(shè)置。使用 set 命令需要進(jìn)入命令模式。
:set 命令選項(xiàng)
命令
說明
:set ic 搜索時(shí)忽略大小寫。
:set ai 設(shè)置自動(dòng)縮進(jìn)(自動(dòng)對(duì)齊)。
:set noai 取消自動(dòng)縮進(jìn)(自動(dòng)對(duì)齊)。
:set nu 顯示行號(hào)。
:set sw 設(shè)置縮進(jìn)的空格數(shù),例如,將縮進(jìn)空格數(shù)設(shè)置為4::set sw=4。
:set ws 循環(huán)搜索:如果直到文件末尾也沒有查找到指定字符,那么會(huì)回到開頭繼續(xù)查找。
:set wm 設(shè)置自動(dòng)換行,例如,設(shè)置距離邊際2個(gè)字符時(shí)換行::set wm=2 。
:set ro 將文件類型改為只讀。
:set term 輸出終端類型。
:set bf 忽略輸入的控制字符,如 BEL(響鈴)、BS(退格)、CR(回車)等。
運(yùn)行命令
切換到命令模式,再輸入 ! 命令即可運(yùn)行 Linux 命令。
例如,保存文件前,如果希望查看該文件是否存在,那么輸入:! ls
即可列出當(dāng)前目錄下的文件。
按任意鍵回到 vi 編輯器。
文本替換
切換到命令模式,再輸入 s/ 命令即可對(duì)文本進(jìn)行替換。語法為::s/search/replace/g
search 為檢索的文本,replace 為要替換的文本,g 表示全局替換。
二、ubuntu16.04編輯器vi該怎么使用
第一種:命令模式(command mode)
也就是說在這個(gè)界面我們可以執(zhí)行命令來完成我們所需要完成的操作,比如我們直接在終端輸入命令:vi,這里我們可以看到系統(tǒng)進(jìn)入了vi的系統(tǒng)界面,顯示了vi版本及一些簡單的幫助功能。當(dāng)我們輸入:“vi + 文件名” 時(shí)則進(jìn)入了文件編輯狀態(tài),比如說我們寫一個(gè)hello.cpp文件,在命令行輸入:vi hello.java
光標(biāo)顯示的地方為命令編輯處,這里我們可以對(duì)文件進(jìn)行命令操作,比如說對(duì)文件內(nèi)容進(jìn)行移動(dòng),字符、字或行的刪除,再或者進(jìn)入編輯狀態(tài)、保存退出等操作,而左下角則顯示著新建的文件名
第二種:插入模式(Insert mode)
在vi中,只有進(jìn)入插入模式才能對(duì)文件內(nèi)容進(jìn)行寫入編輯,方法很簡單,只要在命令模式(command mode)下輸入“i”鍵即可進(jìn)入插入模式(Insert mode),這也是很多新手剛接觸vi時(shí)摸不著頭腦的地方,小編之前也是,想該個(gè)配置,半天都不知道怎么輸入內(nèi)容。
比如小編寫個(gè)簡單的helloword:
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World!");
}
}
寫完之后按“esc”鍵即可退出“插入模式(Insert mode)”
第三種:底行模式(last line mode)
就是在vi文本最后編輯處的操作,即左下角文件名顯示的上一格,通常是用來對(duì)文件的保存或退出vi編輯的。
方法是在命令行模式(command mode)下,按一下“:”冒號(hào)鍵即可進(jìn)入底行模式(last line mode)了。在左下角我們可以看到有個(gè)“:”出現(xiàn)則說明你已經(jīng)進(jìn)入底行模式(last line mode)
最后我們對(duì)文本進(jìn)行保存操作
:w xxx(這里的“XXX”是將文件以指定的文件名“XXX”進(jìn)行保存)
: wq (輸入“wq”,則進(jìn)行存盤并退出vi)
: q! (輸入“q!”, 則不存盤并強(qiáng)制退出vi)
這里小編輸入wq保存當(dāng)前文件,我們來看下是不是已經(jīng)創(chuàng)建看hello.java文件,在終端輸入命令:ls ,我們可以看到那個(gè)白色的文件名就是我們剛創(chuàng)建的hello.java文件,如果你希望看詳細(xì)信息則輸入命令:ls -l 即可。
這樣我們就完成了整個(gè)文件在vi編輯器中的操作過程了。
特別注意:在插入模式(Insert mode)中如果你想刪除輸錯(cuò)的字符用“backspace”是無效的哦,光標(biāo)只會(huì)往前移動(dòng),并不會(huì)刪除字符,在vi中直接在命令模式使用字符命令即可對(duì)文件內(nèi)容進(jìn)行修改:
“x”:每按一次,刪除光標(biāo)所在位置所在位置的那個(gè)字符。
“X”:大寫的X,每按一次,刪除光標(biāo)所在位置的“前面”一個(gè)字符。
當(dāng)然如果你想在插入模式(Insert mode)刪除也是可行的,要用“del”鍵,刪除光標(biāo)所在位置的那個(gè)字符。
三、想知道下 vi編輯器的使用
Vi 簡介
Vi 是Unix 世界里極為普遍的全螢?zāi)晃臅庉嬈?,幾乎可以說任何一臺(tái) Unix 機(jī)器都會(huì)提供這套軟體。Linux 當(dāng)然也有,它的 vi 其實(shí)是 elvis(版權(quán)問題),不過它們都差不多。熟悉 DOS 下的文書處理后,也許會(huì)感到 vi 并不好用;Unix 上也已經(jīng)發(fā)展出許多更新、更好用的文書編輯器,但是并不一定每一臺(tái) Unix 機(jī)器上都會(huì)安裝這些額外的軟體。所以,學(xué)習(xí) vi的基本操作還是有好處,讓你在各個(gè)不同的機(jī)器上得心應(yīng)手。
Vi 基本觀念
Unix 提供一系列的 ex 編輯器,包括 ex, edit 和 vi 。相對(duì)於全螢?zāi)痪庉嬈?,現(xiàn)在可能很難想像如何使用 ex, edit 這種行列編輯器(有人用過 DOS 3.3 版以前所附的
EDLIN 嗎?)。 Vi 的原意是 "Visual",它是一個(gè)立即反應(yīng)的編輯程式,也就是說可
以立刻看到操作結(jié)果。
也由於 vi 是全螢?zāi)痪庉嬈?,所以它必須控制整個(gè)終端機(jī)螢?zāi)荒睦镌擄@示些什麼。而終端機(jī)的種類有許多種,特性又不盡相同,所以 vi 有必要知道現(xiàn)在所使用的是哪一種終 端機(jī)。這是藉由 TERM 這個(gè)環(huán)境變數(shù)來設(shè)定,設(shè)定環(huán)境變數(shù)方面請(qǐng)查看所使用 shell 的說明。(除非執(zhí)行 vi 的時(shí)候回應(yīng) unknow terminal type ,否則可以不用設(shè)定。)
只要簡單的執(zhí)行 vi 就可以進(jìn)入 vi 的編輯環(huán)境。在實(shí)際操作之前先對(duì)它有個(gè)概略的了解會(huì)比較好。Vi 有兩種模式,輸入模式以及指令模式。輸入模式即是用來輸入文字資料,而指令模式則是用來下達(dá)一些編排文件、存檔、以及離開 vi 等等的操作指令。當(dāng)執(zhí)行 vi 后,會(huì)先進(jìn)入指令模式,此時(shí)輸入的任何字元都視為指令。
進(jìn)入與離開
要進(jìn)入 vi 可以直接在系統(tǒng)提示字元下鍵入 vi <檔案名稱>,vi 可以自動(dòng)幫你載入所要編輯的檔案或是開啟一個(gè)新檔。進(jìn)入 vi 后螢?zāi)蛔蠓綍?huì)出現(xiàn)波浪符號(hào),凡是列首有該符號(hào)就代表此列目前是空的。要離開 vi 可以在指令模式下鍵入 :q, :wq 指令則是
存檔后再離開(注意冒號(hào))。要切換到指令模式下則是用 [ESC] 鍵,如果不曉得現(xiàn)在
是處於什麼模式,可以多按幾次 [ESC],系統(tǒng)會(huì)發(fā)出嗶嗶聲以確定進(jìn)入指令模式。
Vi 輸入模式
要如何輸入資料呢?有好幾個(gè)指令可以進(jìn)入輸入模式:
新增 (append)
a 從游標(biāo)所在位置后面開始新增資料,游標(biāo)后的資料隨新增資料向后移動(dòng)。
A 從游標(biāo)所在列最后面的地方開始新增資料。
插入 (insert)
i 從游標(biāo)所在位置前面開始插入資料,游標(biāo)后的資料隨新增資料向后移動(dòng)。
I 從游標(biāo)所在列的第一個(gè)非空白字元前面開始插入資料。
開始 (open)
o 在游標(biāo)所在列下新增一列并進(jìn)入輸入模式。
O 在游標(biāo)所在列上方新增一列并進(jìn)入輸入模式。
也許文字?jǐn)⑹隹雌饋碛悬c(diǎn)繁雜,但是只要實(shí)際操作一下馬上可以了解這些操作方式。實(shí)務(wù)很重要,尤其是電腦方面的東西隨時(shí)可以嘗試及驗(yàn)證結(jié)果。極力建議實(shí)際去使用它而不要只是猛 K 文件,才有事半功倍的效用。(注:此段為廢話。)
Vi 基本編輯
配合一般鍵盤上的功能鍵,像是方向鍵、[Insert] 、[Delete] 等等,現(xiàn)在你應(yīng)該已經(jīng)可以利用 vi 來處理文字資料了。當(dāng)然 vi 還提供其他許許多多功能讓文字的處理更形方便,有興趣的看倌請(qǐng)繼續(xù)。
在繼續(xù)下去之前先來點(diǎn) BCC 吧。電腦有許多廠牌,不同的硬體及作業(yè)系統(tǒng)。PC 也不是僅僅只有 IBM PC 及其相容品而已。事實(shí)上,包括鍵盤,終端機(jī)等等往往都有不同的規(guī) 格。這代表什麼?
在文書編輯軟體上會(huì)遇這樣的問題,某些電腦的鍵盤上沒有特定的幾個(gè)功能鍵!那麼不就有某些功能不能用了?這個(gè)問題在 Unix 系統(tǒng)上也一樣,幾乎各大電腦廠商都有自己 的 Unix 系統(tǒng),而 vi 的操作方法也會(huì)隨之有點(diǎn)出入。我們固然可以用 PC 的鍵盤來說 明 vi 的操作,但是還是得提一下這個(gè)問題。
刪除與修改
何謂編輯?在這里我們認(rèn)為是文字的新增修改以及刪除,甚至包括文字區(qū)塊的搬移、復(fù)制等等。這里先介紹 vi 的如何做刪除與修改。(注意:在 vi 的原始觀念里,輸入跟編輯是兩碼子事。編輯是在指令模式下操作的,先利用指令移動(dòng)游標(biāo)來定位要進(jìn)行編輯的地方,然后才下指令做編輯。)
x 刪除游標(biāo)所在字元。
dd 刪除游標(biāo)所在的列。
r 修改游標(biāo)所在字元,r 后接著要修正的字元。
R 進(jìn)入取代狀態(tài),新增資料會(huì)覆蓋原先資料,直到按 [ESC] 回到指令模式下為止。
s 刪除游標(biāo)所在字元,并進(jìn)入輸入模式。
S 刪除游標(biāo)所在的列,并進(jìn)入輸入模式。
其實(shí)呢,在 PC 上根本沒有這麼麻煩!輸入跟編輯都可以在輸入模式下完成。例如要?jiǎng)h 除字元,直接按 [Delete] 不就得了。而插入狀態(tài)與取代狀態(tài)可以直接用 [Insert] 切換,犯不著用什麼指令模式的編輯指令。不過就如前面所提到的,這些指令幾乎是每臺(tái)終端機(jī)都能用,而不是僅僅在 PC 上。
在指令模式下移動(dòng)游標(biāo)的基本指令是 h, j, k, l 。想來各位現(xiàn)在也應(yīng)該能猜到只要直接用 PC 的方向鍵就可以了,而且無論在指令模式或輸入模式下都可以。多容易不是。
當(dāng)然 PC 鍵盤也有不足之處。有個(gè)很好用的指令 u 可以恢復(fù)被刪除的資料,而 U 指令則可以恢復(fù)游標(biāo)所在列的所有改變。這與某些電腦上的 [Undo] 按鍵功能相同。
Vi 進(jìn)階應(yīng)用
相信現(xiàn)在對(duì)於 vi 應(yīng)該已經(jīng)有相當(dāng)?shù)恼J(rèn)識(shí)。處理文字也不會(huì)有什麼麻煩才對(duì)。如果有興趣善用 vi 的其它功能進(jìn)一步簡化操作過程,不妨繼續(xù)看下去。
移動(dòng)游標(biāo)
由於許多編輯工作是藉由游標(biāo)來定位,所以 vi 提供許多移動(dòng)游標(biāo)的方式,這個(gè)我們列幾張簡表來說明(這些當(dāng)然是指令模式下的指令):
指令 說明 功能鍵
0 移動(dòng)到游標(biāo)所在列的最前面 [Home]
$ 移動(dòng)到游標(biāo)所在列的最后面 [End]
[CTRL][d] 向下半頁
[CTRL][f] 向下一頁 [PageDown]
[CTRL][u] 向上半頁
[CTRL][b] 向上一頁 [PageUp]
指令 說 明
H 移動(dòng)到視窗的第一列
M 移動(dòng)到視窗的中間列
L 移動(dòng)到視窗的最后列
b 移動(dòng)到下個(gè)字的第一個(gè)字母
w 移動(dòng)到上個(gè)字的第一個(gè)字母
e 移動(dòng)到下個(gè)字的最后一個(gè)字母
^ 移動(dòng)到游標(biāo)所在列的第一個(gè)非空白字元
指令 說 明
n- 減號(hào)移動(dòng)到上一列的第一個(gè)非空白字元前面加上數(shù)字可以指定移動(dòng)到以上 n 列
n+ 加號(hào)移動(dòng)到下一列的第一個(gè)非空白字元前面加上數(shù)字可以指定移動(dòng)到以下 n 列
nG 直接用數(shù)字 n 加上大寫 G 移動(dòng)到第 n 列
指令 說 明
fxFx 往右移動(dòng)到 x 字元上往左移動(dòng)到 x 字元上
txTx 往右移動(dòng)到 x 字元前往左移動(dòng)到 x 字元前
;, 配合 f&t 使用,重復(fù)一次配合 f&t 使用,反方向重復(fù)一次
/string?string 往右移動(dòng)到有 string 的地方往左移動(dòng)到有 string 的地方
nN 配合 /&? 使用,重復(fù)一次配合 /&? 使用,反方向重復(fù)一次
指令 說 明 備 注
n(n) 左括號(hào)移動(dòng)到句子的最前面前面加上數(shù)字可以指定往前移動(dòng) n 個(gè)句子右括號(hào)移動(dòng)到下個(gè)句子的最前面前面加上數(shù)字可以指定往后移動(dòng) n 個(gè)句子 句子是以 ! . ? 三種符號(hào)來界定
n{n} 左括弧移動(dòng)到段落的最前面前面加上數(shù)字可以指定往前移動(dòng) n 個(gè)段落右括弧移動(dòng)到下個(gè)段落的最前面前面加上數(shù)字可以指定往后移動(dòng) n 個(gè)段落 段落是以段落間的空白列界定
不要嘗試背誦這些指令,否則后果自行負(fù)責(zé)。它們看起來又多又雜亂,事實(shí)上這是文字?jǐn)⑹霰旧淼恼系K。再強(qiáng)調(diào)一次,實(shí)際去使用它只要幾次就可以不經(jīng)大腦直接下達(dá)這些奇奇怪怪的指令,遠(yuǎn)比死記活背搞得模模糊糊強(qiáng)多了。(注:若真的不經(jīng)大腦而誤刪資料與我無關(guān)。另,此段為廢話。)
進(jìn)階編輯指令
這些編輯指令非常有彈性,基本上可以說是由指令與范圍所構(gòu)成。例如 dw 是由刪除指令 d 與范圍 w 所組成,代表刪除一個(gè)字 d(elete) w(ord) 。
指令列表如下:
d 刪除(delete)
y 復(fù)制(yank)
p 放置(put)
c 修改(change)
范圍可以是下列幾個(gè):
e 游標(biāo)所在位置到該字的最后一個(gè)字母
w 游標(biāo)所在位置到下個(gè)字的第一個(gè)字母
b 游標(biāo)所在位置到上個(gè)字的第一個(gè)字母
$ 游標(biāo)所在位置到該列的最后一個(gè)字母
0 游標(biāo)所在位置到該列的第一個(gè)字母
) 游標(biāo)所在位置到下個(gè)句子的第一個(gè)字母
( 游標(biāo)所在位置到該句子的第一個(gè)字母
) 游標(biāo)所在位置到該段落的最后一個(gè)字母
{ 游標(biāo)所在位置到該段落的第一個(gè)字母
說實(shí)在的,組合這些指令來編輯文件有一點(diǎn)點(diǎn)藝術(shù)氣息。不管怎麼樣,它們提供更多編 輯文字的能力。值得注意的一點(diǎn)是刪除與復(fù)制都會(huì)將指定范圍的內(nèi)容放到暫存區(qū)里,然后就可以用指令 p 貼到其它地方去,這是 vi 用來處理區(qū)段拷貝與搬移的辦法。
某些 vi 版本,例如 Linux 所用的 elvis 可以大幅簡化這一坨指令。如果稍微觀察一 下這些編輯指令就會(huì)發(fā)現(xiàn)問題其實(shí)是定范圍的方式有點(diǎn)雜,實(shí)際上只有四個(gè)指令罷了。
指令 v 非常好用,只要按下 v 鍵,游標(biāo)所在的位置就會(huì)反白,然后就可以移動(dòng)游標(biāo)來設(shè)定范圍,接著再直接下指令進(jìn)行編輯即可。
對(duì)於整列操作, vi 另外提供了更方便的編輯指令。前面曾經(jīng)提到過刪除整列文字的指令 dd 就是其中一個(gè);cc 可以修改整列文字;而 yy 則是復(fù)制整列文字;指令 D 則可以刪除游標(biāo)到該列結(jié)束為止所有的文字。
檔案指令
檔案指令多以 : 開頭,跟編輯指令有點(diǎn)區(qū)別。例如前面提到結(jié)束編輯的指令就是 :q。
現(xiàn)在就簡單說明一下作為本篇故事的結(jié)尾:
∶q 結(jié)束編輯(quit)
如果不想存檔而要放棄編輯過的檔案則用 :q! 強(qiáng)制離開。
∶w 存檔(write)
其后可加所要存檔的檔名。
可以將檔案指令合在一起,例如 :wq 即存檔后離開。
zz 功能與 :wq 相同。
另外值得一提的是 vi 的部份存檔功能??梢杂?:n,mw filename 將第 n 列到第 m 列的文字存放的所指定的 filename 里去哩。時(shí)代在變,世界在變, vi 也在變,不過大致上就這樣。
四、vim的使用方法
命令模式:控制光標(biāo)移動(dòng),可對(duì)文本進(jìn)行復(fù)制、粘貼、刪除和查找等工作。
輸入模式:正常的文本錄入。
末行模式:保存或退出文檔,以及設(shè)置編輯環(huán)境。
在每次運(yùn)行Vim編輯器時(shí),默認(rèn)進(jìn)入命令模式,此時(shí)需要先切換到輸入模式后再進(jìn)行文檔編寫工作,而每次在編寫完文檔后需要先返回命令模式,然后再進(jìn)入末行模式,執(zhí)行文檔的保存或退出操作。在Vim中,無法直接從輸入模式切換到末行模式。Vim編輯器中內(nèi)置的命令有成百上千種用法,為了能夠幫助讀者更快地掌握Vim編輯器,表4-1總結(jié)了在命令模式中最常用的一些命令。
表4-1 Vim中常用的命令
編輯
命令 作用
dd 刪除(剪切)光標(biāo)所在整行
5dd 刪除(剪切)從光標(biāo)處開始的5行
yy 復(fù)制光標(biāo)所在整行
5yy 復(fù)制從光標(biāo)處開始的5行
n 顯示搜索命令定位到的下一個(gè)字符串
N 顯示搜索命令定位到的上一個(gè)字符串
u 撤銷上一步的操作
p 將之前刪除(dd)或復(fù)制(yy)過的數(shù)據(jù)粘貼到光標(biāo)后面
末行模式主要用于保存或退出文件,以及設(shè)置Vim編輯器的工作環(huán)境,還可以讓用戶執(zhí)行外部的Linux命令或跳轉(zhuǎn)到所編寫文檔的特定行數(shù)。要想切換到末行模式,在命令模式中輸入一個(gè)冒號(hào)就可以了。Vim文本編輯器
命令 作用
:w 保存
:q 退出
:q! 強(qiáng)制退出(放棄對(duì)文檔的修改內(nèi)容)
:wq! 強(qiáng)制保存退出
:set nu 顯示行號(hào)
:set nonu 不顯示行號(hào)
:命令 執(zhí)行該命令
:整數(shù) 跳轉(zhuǎn)到該行
:s/one/two 將當(dāng)前光標(biāo)所在行的第一個(gè)one替換成two
:s/one/two/g 將當(dāng)前光標(biāo)所在行的所有one替換成two
:%s/one/two/g 將全文中的所有one替換成two
?字符串 在文本中從下至上搜索該字符串
/字符串
以上就是小編對(duì)于vi編輯器怎么執(zhí)行程序問題和相關(guān)問題的解答了,如有疑問,可撥打網(wǎng)站上的電話,或添加微信。
推薦閱讀:
vi設(shè)計(jì)策劃書(vi設(shè)計(jì)策劃書ppt)
vi手冊(cè)怎么做出來的(vi手冊(cè)用什么軟件做)
公司形象設(shè)計(jì)(公司形象設(shè)計(jì)叫什么-VI嗎-)
無貨源網(wǎng)店怎么注冊(cè)開網(wǎng)店(無貨源網(wǎng)店怎么注冊(cè)開網(wǎng)店流程)