1. 程式人生 > >linux vi 操作筆記

linux vi 操作筆記

i(vim)是上Linux非常常用的編輯器,很多Linux發行版都預設安裝了vi(vim)。vi(vim)命令繁多但是如果使用靈活之後將會大大提高效率。vi是“visual interface”的縮寫,vim是vi IMproved(增強版的vi)。在一般的系統管理維護中vi就夠用,如果想使用程式碼加亮的話可以使用vim。下面vps偵探整理一下vi的使用教程:包含vi的基本介紹、使用模式、檔案的開啟關閉儲存、插入文字或新建行、移動游標、刪除、恢復字元或行、搜尋等等,算是一篇比較適合新手學習vi的教程。

vi有3個模式:插入模式、命令模式、低行模式。

●插入模式:在此模式下可以輸入字元,按ESC將回到命令模式。

●命令模式:可以移動游標、刪除字元等。

●低行模式:可以儲存檔案、退出vi、設定vi、查詢等功能(低行模式也可以看作是命令模式裡的)。

一、開啟檔案、儲存、關閉檔案(vi命令模式下使用)

vi filename //開啟filename檔案

:w //儲存檔案

:w vpser.net //儲存至vpser.net檔案

:q //退出編輯器,如果檔案已修改請使用下面的命令

:q! //退出編輯器,且不儲存

:wq //退出編輯器,且儲存檔案

二、插入文字或行(vi命令模式下使用,執行下面命令後將進入插入模式,按ESC鍵可退出插入模式)

a //在當前游標位置的右邊新增文字

i //在當前游標位置的左邊新增文字

A //在當前行的末尾位置新增文字

I //在當前行的開始處新增文字(非空字元的行首)

O //在當前行的上面新建一行

o //在當前行的下面新建一行

R //替換(覆蓋)當前游標位置及後面的若干文字

J //合併游標所在行及下一行為一行(依然在命令模式)

三、移動游標(vi命令模式下使用)

1、使用上下左右方向鍵

2、命令模式下:h 向左、j 向下 、k 向上、l 向右。

空格鍵 向右、Backspace 向左、Enter 移動到下一行首、- 移動到上一行首。

四、刪除、恢復字元或行(vi命令模式下使用)

x //刪除當前字元

nx //刪除從游標開始的n個字元

dd //刪除當前行

ndd //向下刪除當前行在內的n行

u //撤銷上一步操作

U //撤銷對當前行的所有操作

五、搜尋(vi命令模式下使用)

/vpser //向光標下搜尋vpser字串

?vpser //向光標上搜索vpser字串

n //向下搜尋前一個搜素動作

N //向上搜尋前一個搜尋動作

六、跳至指定行(vi命令模式下使用)

n+ //向下跳n行

n- //向上跳n行

nG //跳到行號為n的行

G //跳至檔案的底部

七、設定行號(vi命令模式下使用)

:set nu //顯示行號

:set nonu //取消顯示行號

八、複製、貼上(vi命令模式下使用)

yy //將當前行復制到快取區,也可以用 "ayy 複製,"a 為緩衝區,a也可以替換為a到z的任意字母,可以完成多個複製任務。

nyy //將當前行向下n行復制到緩衝區,也可以用 "anyy 複製,"a 為緩衝區,a也可以替換為a到z的任意字母,可以完成多個複製任務。

yw //複製從游標開始到詞尾的字元。

nyw //複製從游標開始的n個單詞。

y^ //複製從游標到行首的內容。 VPS偵探

y$ //複製從游標到行尾的內容。

p //貼上剪下板裡的內容在游標後,如果使用了前面的自定義緩衝區,建議使用"ap 進行貼上。

P //貼上剪下板裡的內容在游標前,如果使用了前面的自定義緩衝區,建議使用"aP 進行貼上。

九、替換(vi命令模式下使用)

:s/old/new //用new替換行中首次出現的old

:s/old/new/g //用new替換行中所有的old

:n,m s/old/new/g //用new替換從n到m行裡所有的old

:%s/old/new/g //用new替換當前檔案裡所有的old

十、編輯其他檔案

:e otherfilename //編輯檔名為otherfilename的檔案。

十一、修改檔案格式

:set fileformat=unix //將檔案修改為unix格式,如win下面的文字檔案在linux下會出現^M。

總結:vi(vim)教程雖然有比較多的命令,但是隻要勤加練習,相信你會很快的熟練掌握,同時也會給你的工作或學習帶來更高的效率。當如果不知道自己處在什麼模式時可以按2次Esc鍵即可回到命令模式,會有最後提醒一點:注意大小寫!!!

1.關於退出

:wq!  ----強制儲存退出
:wq  ---- 儲存退出
:x   ----- 作用和:wq 一樣
ZZ  ---- 作用和:wq一樣,(注意Z是大寫的,並且不是在命令模式)
:q  ---- 退出
:q!  ---  強制退出

==============================================

2.關於移動


h : 在當前行向左移動一個字元
j:  移動到下一行
k:  移動到上一行
l:  在當前行向右移動一個字元
Ctrl +f:  向前滾動一頁
Ctrl +b:  向後滾動一頁
:n   將游標定位到第n行
:$   將游標定位到最後一行
0   將游標定位到本行的行首
$   將游標定位到本行的行尾
G   將游標定位到本文章的最後一行,與:   $功能相同。
H   將游標定位到螢幕的頂端
M   將游標定位到螢幕的中間
L   將游標定位到螢幕的底端


============================================
3.關於搜尋


/:   後面跟要查詢的東西,在檔案中向前搜尋
?:  後面跟要查詢的東西,在檔案中向後搜尋
n:  向前重複搜尋
N:  向後重複搜尋


=============================================
4.關於複製

yy:  複製游標當前行
nyy:  複製游標當前行到當前行以下的n-1行
:1,100 co 200   將1~100的內容複製到第200行。
:100,102 co $   將100~102行的內容複製到最後一行。


==============================================
5.關於貼上


p :   貼上到當前行的下一行
P(大) :   貼上到當前行的 上一行


==============================================
6.關於刪除.剪下

dd   刪除當前行
ndd   與nyy相似
dw   刪除一個單詞
ndw   與ndd相似
x    刪除一個字元
nx   刪除n個字元
dG   刪除當前游標到檔案末尾的所有內容。
d0   刪除當前游標到本行行首的所有內容
d$   刪除當前游標到本行行尾的所有內容
:1,100d  刪除1~100
:100d    刪除第100行
:1,100 mo $   將1~100行的內容移動到最後一行。

=============================================
7.關於插入


i:  在當前位置的字元前面進入插入模式
I:  在當前行的開頭進行插入
a:  在當前位置的字元後面進入插入模式
A:  在當前行的結尾進行插入
o:  在當前行下面開啟一個新行進行插入
O:  在當前行上面開啟一個新行進行插入


=============================================
8.關於撤銷

u:  撤銷上一次的更改


=============================================
9.關於替換


regexp:  是要匹配的式樣
replacement:  是要替換的字串


:s/regexp/replacement   -------------------------替換當前行出現的第一個式樣
:s/regexp/replacement/g  -------------------------替換當前行所有的匹配
:%s/regexp/replacement/g  -----------------------替換檔案中所有匹配式樣


=============================================

PS:  還有一個重要的命令就是"." 命令,這個命令是用來重複上一命令的

vi裡如何:撤銷上次操作?,多次重複一組編輯操作?.......

a)   撤消上一個編輯操作。       ====>   u
b)   重複上一個編輯操作。     =====>   .
c)   還原被撤消的編輯操作。   ======>   Ctrl   +   R
d)   多次重複一組編輯操作。 ====>  ". " 命令可以重複最近一次的編輯動作.