Vim入門操作大全

下文出現的所有類似Ctrl+a或者n>>這種形式的命令都代表快捷鍵操作;如果是底線命令都加了:

移動光標

  • 基本操作
h    j    k    l
左   下   上   右
  • 高級操作
按鍵 含義
0 將光標定位到行首的位置
^ 將光標定位到本行第一個不是blank字符的位置(所謂blank字符就是空格,tab,換行,回車等)
$ 將光標定位到行尾的位置
g_ 將光標定位到本行最後一個不是blank字符的位置
b 將光標定位到光標所在單詞的起始處
e 將光標定位到光標所在單詞的結尾處
w 將光標定位到下一個單詞的起始處(注意,是光標所在單詞的下一個單詞)
gg 將光標定位到文件的開頭
G 將光標定位到文件的末尾

這裏幾乎所有的移動光標的前面都可以加數字,代表重複多少次,還有很多命令都可以這麼做,自行探索哈哈

模式分類

VIM 具有6種基本模式和5種派生模式。

基本模式:

  1. 普通模式
  2. 插入模式
  3. 可視模式
  4. 底線命令行模式
  5. 選擇模式
  6. Ex 模式

派生模式:

  1. 操作符等待模式
  2. 插入普通模式
  3. 插入可視模式
  4. 插入選擇模式
  5. 替換模式

常用模式

  • 進入插入模式
按鍵 含義
i 在光標的前邊進入插入模式
I 在光標所在行的行首進入插入模式
a 在光標的後邊進入插入模式
A 在光標所在行的行尾進入插入模式
o 在光標所在行的下方插入空行並進入插入模式
O 在光標所在行的上方插入空行並進入插入模式
s 刪除光標指定的字符並進入插入模式
S 將光標所在行清除並進入插入模式
  • 退出插入模式(按鍵)
Esc
  • 進去底線命令模式(插入模式不可進入)

保存退出文件

# 方式1(底線命令模式)
:wq
# 方式2(快捷鍵)
Shift+Z+Z

刪除命令

  • 刪除當前光標下的字符用x
x
  • 刪除更多字符
# d 操作次數 操作範圍的指令
d [n] motion
按鍵 含義
d0 刪除光標從當前位置(不包含)到該行行首的所有字符
d^ 刪除光標從當前位置(不包含)到本行第一個不是blank字符位置處的字符
d$ 刪除從光標當前位置(包含)到該行行尾的所有字符
dg_ 刪除從光標當前位置(包含)到該行行尾最後一個不是blank字符位置處的所有字符
db 刪除從光標當前位置(不包含)到單詞起始處的所有字符
de 刪除從光標當前位置(包含)到單詞結尾處的所有字符
dw 刪除從光標當前位置(包含)到下個單詞起始處的所有字符
dh 刪除光標前面一個字符
dl 刪除光標指定的字符
dj 刪除光標所在行以及下一行的所有字符
dk 刪除光標所在行以及上一行的所有字符
dd 刪除光標所在行的所有字符
dgg 刪除光標所在行(包含)到文件開頭的所有字符
dG 刪除光標所在行(包含)到文件末尾的所有字符

這上面所有的“刪除”操作並不是真的刪除,它們事實上是存放在 VIM 的一個緩衝區(VIM 把它稱之爲寄存器)中,相當於 Windows 的剪切功能。

修改命令

跟刪除完全相同,只是把d換成c,並且修改會自動進入插入模式,我們可以理解成修改 = 刪除 + 進入插入模式

  • 例如:刪除本行並進入插入模式
cc

複製和粘貼

  • 複製多個字符
# y  操作次數 操作範圍的指令
y [n] motion
  • 複製當前行字符
yy

其他motion其實跟之前刪除是一樣的

  • 粘貼到光標之後
p
  • 粘貼到光標之前
P

注意:如果你需要粘貼的是整行爲單位,那麼 p 命令將在光標的下一行開始粘貼;如果你拷貝的是非整行的局部字符串,那麼 p 命令將在光標後開始粘貼。

撤銷與恢復

  • 撤銷最後一次修改
u
  • 撤銷對當前行的修改
U
  • 恢復上次撤銷的內容
Ctrl+r

文件信息

  • 查看文件信息,在最下面顯示當前文件和光標的信息
Ctrl+g
  • 跳轉到第n行
# 方式1
nG
# 方式2
:n
  • 跳轉括號
# 將光標定位到括號的其中一半上,按下光標會跳轉到另一半括號上
%

縮進

  • 縮進n行
n>>
  • 反縮進n行
n<<
  • 反縮進n行
n<<
  • 結合可視模式進行縮進
# step1:進入可視模式通過移動光標選擇
v
# step2:縮進
>
<

搜索命令

  • 向後搜索(默認從當前光標開始向後搜索)
# 開啓搜索
/關鍵字
# 向後搜索
n
# 向前搜索
N
  • 向前搜索(默認從當前光標開始向前搜索)
# 開啓搜索
?關鍵字
# 向前搜索
n
# 向後搜索
N
  • 去除高亮
:nohl
  • 十個特殊字符有特殊含義,需要先轉義再搜索
.
*
[
]
^
%
/
?
~
$
# 轉義(前面加\)
\特殊字符

替換命令

方式1:替換模式
  • 替換當前光標下字符
r+替換字符
  • 替換多個字符
# step1:進入替換模式,左下角出現 replace
R
# step2:替換
輸入替換字符
方式2:底線命令行模式

一般在搜索後進行替換

  • 把光標所在行的第一個符合條件的字符替換
:s/被替換字符/替換字符
  • 把光標所在行的所有符合條件的字符替換
:s/被替換字符/替換字符/g
  • 把整個文件的所有符合條件的字符替換
:%s/被替換字符/替換字符/g
  • 把文件局部(2-10行)的所有符合條件的字符替換
:2,10s/被替換字符/替換字符/g
  • 把整個文件的所有符合條件的字符替換,逐步詢問替換
:%s/被替換字符/替換字符/gc
# 會逐步詢問
替換爲 替換字符 (y/n/a/q/l/^E/^Y)? 
y   -- 替換
n   -- 不替換
a   -- 替換所有
q   -- 放棄替換
l   -- 替換一個並進入插入模式
^E  -- Ctrl + E 滾動屏幕
^Y  -- Ctrl + Y 滾動屏幕

文件命令

  • 文件另存爲
:w 文件名
  • 強制另存爲(已經存在同名文件,覆蓋)
:w! 文件名
  • 局部內容另存爲
# step1:進入可視模式通過移動光標選擇
v
# step2:另存
:w 文件名
  • 合併文件(讀取文件並植入到光標的下一行位置)
:r 文件名
  • 同時打開多個文件(打開文件時操作)
# 垂直並排
vi -o 文件名1 文件名2 ...
# 水平並排
vi -O 文件名1 文件名2 ...

# 切換文件
Ctrl + w + w
# 垂直並排切換
Ctrl + w + 上/下
# 水平並排切換
Ctrl + w + 左/右

# 退出保存全部,在之前的基礎上加 a
:qa
:wa
:q!a
:w!a
:wqa

執行shell命令

:! shell命令
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章