
一:vi與vim
1. vi
與 vim
的異同
vi
vim
它們都是
多模式編輯器
,不同的是vim 是vi的
更新版本
,它不僅相容vi的所有指令,而且還有一些
新的特性
在裡面
2.vim的特性
① 多級撤消
在vi裡,按
u
隻能撤消上次指令,而在vim裡可以
無限制地撤消
② 易用性
vi隻能運作于Linux中,而vim可以運作于
Linux
、
Windows
、
Mac OS
等多操作平台
③ 文法高亮
vim可以用不同的顔色來加亮你的代碼
④ 可視化操作
vim不僅可以在終端運作,也可以運作于
Linux
、
Windows
、
Mac OS
⑤ 對 vi
的完全相容
vi
某些情況下,你可以把vim當成vi來使用
3.總結
vi和vim都是Linux中的編輯器,不同的是vim比較進階,可以視為vi的更新版本
-
适用于vi
文本編輯
-
更适用于vim
coding
-
是内置的,vi
是要自己安裝的vim
yum install vim -y
二:使用
1.vi的3種模式
① 指令行模式 (command mode/一般模式)
任何時候,不管使用者處于何種模式,隻要按一下
ESC
鍵,即可使Vi進入指令行模式
在shell環境(提示符為
$
)下輸入啟動vi指令,進入編輯器時,也是處于該模式下
在該模式下,使用者可以輸入各種合法的vi指令,用于管理自己的文檔
② 文本輸入模式 (input mode/編輯模式)
在指令模式下輸入插入指令
i
(insert)、附加指令
a
(append)、打開指令
o
(open)、修改指令
c
(change)、取代指令
r
或替換指令
s
都可以進入文本輸入模式
在該模式下,使用者輸入的任何字元都被vi當做檔案内容儲存起來,并将其顯示在螢幕上
在文本輸入過程中,若想回到指令行模式下,按”ESC”鍵即可
③ 末行模式 (last line mode/指令列指令模式)
末行模式也稱轉義模式。
vi和Ex編輯器的功能是相同的,二者主要差別是使用者界面
在vi中,指令通常是單個鍵,例如i、a、o等;而在Ex中,指令是以按Enter鍵結束的正文行
vi有一個專門的“轉義”指令,可通路很多面向行的Ex指令
2.vim的3種模式
① 正常模式 (Normal-mode)
啟動vim後預設處于正常模式(即指令行模式)
不論位于什麼模式,按下
Esc
鍵(有時需要按兩下)都會進入正常模式
② 插入模式 (Insert-mode)
在正常模式中按下i, a, o, I,A,O鍵,會進入插入模式。現在隻用記住按i鍵會進行插入模式
在插入模式中,擊鍵時會寫入相應的字元
③ 指令模式 (Command-mode)
在正常模式中,按下:(英文冒号)鍵,會進入指令模式
在指令模式中可以執行一些輸入并執行一些vim或插件提供的指令,就像在shell裡一樣
這些指令包括設定環境、檔案操作、調用某個功能等等
④ 可視模式 (Visual-mode)
在正常模式中按下
v
,
V
,
ctrl+v
,可以進入可視模式
可視模式中的操作有點像拿滑鼠進行操作,選擇文本的時候有一種滑鼠選擇的即視感,有時候會很友善
模式切換
快捷鍵
鍵位 | 含義 |
---|---|
esc | 切換模式 |
h | 向左 |
j | 向下 |
k | 向上 |
l | 向右 |
gg | 回到第一行 |
shift + g | 回到最後一行(無論是否是空白行) |
yy | 複制目前行 |
p | 粘貼 |
shft+v | 選擇行,可以用jk來選擇多行 |
v | 選擇字元,可以用hjkl來選擇多個 |
dd | 删除目前行 |
i | 在光标前開始輸入 |
a | 在光标後開始輸入 |
I | 在目前行的頭部開始輸入 |
A | 在目前行的尾部開始輸入 |
o | 在目前行的下面建立新的一行開始輸入 |
O | 在目前行的上面建立新的一行開始輸入 |
/ | 查詢,按n跳轉下一個查詢結果 |
跳轉到目前行的行首 | |
$ | 跳轉到目前行的行末 |
w | 跳過一個單詞 |
c+i | 後面可以跟’’ [] {} () ,代表将裡面的内容清空并重新輸入 |
d+i | 後面可以跟’’ [] {} () ,代表将裡面的内容清空,不會進入輸入模式 |
x | 删除光标所在的字元 |
c+$ | 清空光标到目前行的最後,并進入輸入模式 |
d+$ | 清空光标到目前行的最後,不進入輸入模式 |
: n | 跳轉到第n行 |
cw | 修改一個單詞 |
dw | 删除一個單詞 |
n j,k,h,l | 向某個位置移動n個機關 |
u | 撤銷 |