Vim (vi) 編輯器快捷鍵大全【圖解】,各種操作,指令大全 | 從無到有 | linux | mac | terminal

1-7 基礎版圖片可以從這裏下載到,還有 svg 矢量版
http://www.viemu.com/a_vi_vim...

前言:

最近發現 vim 是個好強大的文本編輯工具,有多強大,看下面就知道。幾乎涵蓋了所有可能的操作。
我會在前面七張圖片下面摘寫一些有用常用的指令

舉個例子證明它的強大

例子

這上圖中,我需要刪除文件裏的 ( svg | png ) 這一段文字。
只需要下面幾個操作就好了,以下是步驟,和步驟解釋:

步驟 指令 解釋
1 /type( / 搜索該字段前面的 type( 將光標定位到此
2 f( 將光標移動到 (
3 df) d 刪除指令,刪除當前位置到下一個 ) 的字符
4 :wq 保存並退出

0 基礎開始

vi (vim) 是 linux 系統下一個命令行文本編輯器,使用的時候直接 vi 後接文件名

vi test.txt
## 編輯 test.txt 文件,文件存在就編輯它,不存在就新建一個文件並編輯

vi 的最常用的兩種模式: 普通模式 | 輸入模式


普通模式

是你打開文件時的樣子

new

這個時候你可以直接使用本文章中提到的指令操作文本,此時你按鍵盤上的鍵會被編輯器接收,作爲指令來執行,而不是輸入到文本中。
如直接輸入 :wq 來保存並退出文件。
:w 存儲文本
:q 退出文本,如果你對文本做了改動,這個是退不出去的。需要下面:
:q! 退出不保存文本
:wq 保存並退出文本

:set nu 顯示行號
:set nonu 不顯示行號

:syntax enable 語法高亮 (如果支持的話)
:set filetype=html 文檔格式,配合上面語句


輸入模式

insert

按 指令 i 後會在光標位置開始輸入,這時候左下角會有 --- INSERT --- 提示,表示當前正在輸入模式。
此時你鍵盤的所有按鍵操作都會寫入到文本中。
要切換到 普通模式 只需要按一下鍵盤的最左上角 esc 鍵即可。


1

基礎編輯,移動光標

指令 解釋
$ 行尾
^ 行首
w 下一個單詞 (詞首)
e 下一個單詞(詞尾)
b 前一個單詞
x del 刪除後一個字符
X backspace 刪除前一個字符
u 撤銷
ctrl + r 重做
k
h
g
l
i 插入,開始寫東西
s 覆蓋
esc 退出輸入模式,進入普通模式,可執行各種命令

2

操作和重複操作

指令 解釋
f 查找字符,按f後再按需要移動到的字符,光標就會移動到那
f; 就會移動到下一個 ;的位置
F 反向查找字符
. 重複上一個操作
v 選擇模式,用上下左右選擇文本,按相應的指令直接執行,:選中後執行 d 就直接刪除選中的文本
ctrl + v 塊狀選擇模式,可以縱向選擇文本塊,而非以行的形式
d 高級刪除指令:
dw 刪除一個單詞
df( 配合 f ,刪除從光標處到 ( 的字符,單行操作
dd 刪除當前行
d2w 刪除兩個單詞
d2t, 刪除當前位置到後面第二個 , 之間的內容,不包含 , (t = to

3

複製 和 粘貼

指令 解釋
y 複製
yy 複製當前行
p 粘貼到後面
P 粘貼到前面
o 在當前行的下一行添加空行並開始輸入
O 在當前行的上一行添加空行並開始輸入

所有經過 d x e 處理的字符串都已經複製到了粘貼板上。


4

搜索

指令 解釋
/ 從當前位置向後搜索
從當前位置後前搜索
n 搜索完之後,如果有多個結果,跳到 下一個匹 配項
N 跳到 上一個 匹配項
* 直接匹配當前光標下面的字符串,移到下一個匹配項,跟/ ? 沒有關係
# 上一個匹配項

5

標記 和 宏

標記

m 後跟 a - z 任意字符來設置一個標記
` 後跟 字符來跳到這個標記點
大寫 A - Z 是全局的,小寫 a - z
'. 代表最後編輯位置

q 後接 a - z 開始錄製宏
q 結束宏的錄製
@ 後接 a - z 讀取宏
@@ 代表最後一個宏

6


高級移動

% 在配對的 () [] 之間移動
H M L 移動到編輯器可視範圍的頭部,中間,尾部
G 到文件的尾部,前面添加數字再按 G 跳到輸入的行,寫行號的時候是看不見的
- + 跳到上一行,下一行
( ) 跳到當前句子的 首 / 尾
{ } 跳到 前一個 / 後一個 空行
[[ jumps to the previous { in column 0
]] jumps to the next } column 0


7

高級指令

J 合併當前行與下一行。合併已選中的所有行。
r 替換當前字符到下一個輸入的字符。如: r 後接 4 會把當前字符替換成 4
Cc$ 的縮寫:修改從光標到結尾
Dd$ 的縮寫:刪除從光標到結尾
Yyy 的縮寫:複製當前行
s 刪除光標下字符,並開始編輯
S 刪除當前行,並開始編輯

< 向前縮進,一行,或多行,範圍設置在前面提到了,t等等
> 向後縮進,一行,或多行
= 格式化,一行,或多行

~ 切換光標下的字符大小寫

規則

上面 7 張合起來就是這樣的

Marge

任何指令前輸入的數字,都會作爲指令的重複值:5d, 2u, d2w
重複指令會在當前行執行: dd 刪除當前行,yy 複製當前行
ZZ 保存並退出
ZQ 退出不保存

zt 滾動光標到頂部,光標在文件中的位置不變,只是改變光標在屏幕上的位置
zb 光標滾動到底部

ctrl + F/B PageUp / PageDown




高級

advanced

入門

entry

現代

morden

文字

text

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