====== vi 和vim 的區別 ======
它們都是多模式編輯器,不同的是vim 是vi的升級版本,它不僅相容vi的所有指令,而且還有一些新的特性在裡面。
==== vim的這些優勢主要體現在以下幾個方面: ====
- 多級撤消 我們知道在vi裡,按 u只能撤消上次命令,而在vim裡可以無限制的撤消。
- 易用性 vi只能運行於unix中,而vim不僅可以運行於unix,windows ,mac等多操作平臺。
- 語法加亮 vim可以用不同的顏色來加亮你的程式碼。
- 視覺化操作 就是說vim不僅可以在終端執行,也可以運行於x window、 mac os、 windows。
- 對vi的完全相容 某些情況下,你可以把vim當成vi來使用。
vi和vim都是Linux中的編輯器,不同的是vim比較高階,可以視為vi的升級版本。vi使用於文字編輯,但是vim更適用於coding。
====== 現將vi/vim的命令列收集於下: ======
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 向右。
space 向右、
Back 向左、
Enter 移動到下一行首、
- 移動到上一行首。
==== 四、刪除、恢復字元或行(vi命令模式下使用) ====
x //刪除當前字元
nx //刪除從游標開始的n個字元
dd //刪除當前行
ndd //向下刪除當前行在內的n行
u //撤銷上一步操作
U //撤銷對當前行的所有操作
==== 五、搜尋(vi命令模式下使用) ====
/xxx //向光標下搜尋xxx字串
?xxx //向光標上搜索xxx字串
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^ //複製從游標到行首的內容。
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。