關於vi命令的使用,以前百度了半天也沒找到詳細的操作例項,都是抄來超區一些沒有的東西。

這裡我提供一個使用vi命令修改檔案並儲存的詳細例項教程,分享了!

就以修改/opt/lampp/etc/extra/httpd-xampp.conf這個檔案為例,我們
找到這段程式碼

# since XAMPP 1.4.3
<Directory “/opt/lampp/phpmyadmin”>
AllowOverride AuthConfig Limit
Order allow,deny
Allow from all
</Directory>

為其增加一行Require all granted

首先,我們使用快捷鍵ctrl+alt+t開啟終端。

使用su命令切換至root

然後使用命令:

vi /opt/lampp/etc/extra/httpd-xampp.conf

即可開啟httpd-xampp.conf這個檔案。



我們使用方向鍵,將游標移動到要插入內容的上一行“Allow from all”的末尾,

然後輸入命令“o”。是字母o,作用是在當前游標末尾插入一新行。

如果輸入錯誤,我們可以使用“dd”命令,刪除當前整行內容。

插入新行之後,我們局可以複製要插入的內容然後貼上。

之後按esc鍵,退出插入模式即可進入命令模式。

在末尾輸入":wq"  即可寫入儲存並離開 vi。

最後,我們來看看是否修改成功,還是使用vi /opt/lampp/etc/extra/httpd-xampp.conf 命令開啟檔案,看見下面內容:




Ok,我們已經修改成功了!

最後,附帶上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行下