vim是一個Unix文本編輯器,它以快速高效而聞名,是在終端中運行的小應用程序(當然也有圖形界面),它最主要的特點是完全可以通過鍵盤控制,而不需要菜單欄或鼠標。
例如,將文本插入到文件中,按i鍵并輸入。瀏覽文本或輸入命令,在鍵盤上按Esc,然后按下對應的任何鍵或組合鍵。對于大多數人來說,是一種非常不尋常的文本編輯方式,但這是基于Linux環境工作的開發者編輯配置文件、更改腳本、編寫代碼等操作的主流方式。
本文將介紹一些必要的基本命令,以供大家很快很容易地掌握vim編輯器。建議初學者在使用中進行學習,而不是只看不動手。不實戰操作,那你可能很快忘記這些命令。
使用vim打開文件后,一般會用到三種模式:命令模式(command mode)、輸入模式(insert mode)和底行命令模式(last line mode)。
剛啟動vim時,默認進入命令模式。這時候,我們敲打鍵盤的字母會被識別為不同的命令。
如方向鍵h、j、k、l;輸入鍵i、a、o,切換到輸入模式;
冒號鍵:,切換到底行命令模式。 進入輸入模式,可以任意的碼入字母、符號,按esc鍵退出到命令模式。
在底行命令模式,可以輸入單個或者多個命令,按enter鍵結束運行。
1、vim的進入和退出:vi、vim、:q、:q!、:wq 在terminal中直接敲vi或vim打開文本 :q退出文件 :q!強制退出文件,丟棄你所做的任何改動 :wq 保存修改,然后退出文件
2、移動光標:h、j、k、l鍵 h左移、l右移、j下移、k上移,熟練使用hjkl鍵,習慣之后我們能很快地在屏幕四處移動光標。
3、插入、刪除和撤銷:i、A、x、u鍵、ctrl+r 在command模式下:按下i鍵可以進入insert模式,在光標后插入文字,輸入完成按esc鍵(A鍵,光標移動到本行末輸入);按下x鍵可以刪除光標所在位置的字符;按下u鍵可以撤銷操作,回到上一步。ctrl+r撤銷掉撤銷命令。 按下esc鍵會回到command模式或者撤銷一個不想輸入或部分完整的命令。
4、刪除類命令:dw、d$、dd dw 從光標處刪除至一個單詞的末尾 d$ 從光標處刪除至本行末尾 dd刪除光標所在行
5、在動作前輸入數字會使操作重復那么多次 3dd執行三次光標所在行,即往下刪除三行 2w
使光標向前移動兩個單詞 0
移動到光標的行首
6、關于定位和文件狀態 gg
跳到文件第一行 G / shift+g
跳到文件最后一行 ctrl+g
顯示當前編輯文件名和文件中光標位置 gf
進入光標所在位置路徑的文件
7、關于搜索命令 /
加上字符串可以用于在當前文件中查找該字符串 ?用于反向查找
例如:/error <回車> 即可在文件中查找error n鍵向下繼續搜索,N鍵或shift+n鍵向上繼續搜索(shift+小寫=大寫)
8、替換命令 :s/old/new/gg是全局進行匹配 多種操作需要多加學習應用
9、在vim內執行外部命令 輸入 :!然后輸入外部命令即可執行該外部命令 所有的 : 命令都必須以敲回車鍵結束
10、使用操作符y復制文本,使用p粘貼文本
配合可視模式使用 多行操作是經常會用到的,切記!
11、set設置一些選項 :set xxx 可以設置 xxx 選項。一些有用的選項如下: 'ic' 'ignorecase' 查找時忽略字母大小寫 'is' 'incsearch' 查找短語時顯示部分匹配 'hls' 'hlsearch' 高亮顯示所有的匹配短語
12、獲取在線系統幫助
如下三種方法: - 按下 鍵 (如果鍵盤上有的話) - 按下 鍵 (如果鍵盤上有的話) - 輸入 :help <回車>
13、啟用更多的vim的特性
Vim 的功能特性要比 Vi 多得多,但其中大部分都缺省沒有啟用。為了使用更多的特性,需要創建一個 vimrc 文件。
1. 開始編輯 vimrc 文件,具體命令取決于所用的操作系統: :edit ~/.vimrc
這是 Unix 系統所使用的命令 :edit $VIM/_vimrc
這是 MS-Windows 系統所使用的命令
2. 接著讀取 vimrc 示例文件的內容: :r $VIMRUNTIME/vimrc_example.vim
3. 保存文件,命令為: :write 下次啟動 Vim 時,編輯器就會有了語法高亮的功能。
可以把喜歡的各種設置添加到這個 vimrc 文件中。
要了解更多信息請輸入 :help vimrc-intro
14、使用鍵進行命令行補全
補全對于許多命令都有效,當輸入:命令時,tab鍵可以匹配補全。
15、vim自帶了一個教程說明,我們可以直接輸入vimtutor,打開教程做相應的練習即可。
全局
:h[elp] 關鍵字- 打開關鍵字幫助
:sav[eas] 文件名- 另存為
:clo[se]- 關閉當前窗口
:ter[minal]- 打開一個shell窗口
K- 打開光標所在單詞的man頁面
移動光標
h- 左移光標
j- 下移光標
k- 上移光標
l- 右移光標
H- 移動到當前頁面頂部
M- 移動到當前頁面中間
L- 移動到當前頁面底部
w- 移動到下個單詞開頭
W- 移動到下個單詞開頭(單詞含標點)
e- 移動到下個單詞結尾
E- 移動到下個單詞結尾(單詞含標點)
b- 移動到上個單詞開頭
B- 移動到上個單詞開頭(單詞含標點)
ge- 移動到上個單詞結尾
gE- 移動到上個單詞結尾(單詞含標點)
%- 跳轉到配對的符號(默認支持的配對符號組::'()', '{}', '[]' - 在vim中使用:h matchpairs獲得更多信息)
0- 移動到行首
^- 移動到行首的非空白符
$- 移動到行尾
g_- 移動到行內最后一個非空白符
gg- 移動到文件第一行
G- 移動到文件最后一行
5ggor5G-移動到第五行
gd- 跳轉到局部定義
gD- 跳轉到全局定義
fx- 移動到字符 x 下次出現的位置
tx- 移動到字符 x 下次出現的位置的前一個字符
Fx- 移動到字符 x 上次出現的位置
Tx- 移動到字符 x 上次出現的位置的后一個字符
;- 重復之前的f、t、F、T操作
,- 反向重復之前的f、t、F、T操作
}- 移動到下一個段落(當編輯代碼時則為函數/代碼塊)
{- 移動到上一個段落(當編輯代碼時則為函數/代碼塊)
zz- 移動屏幕使光標居中
Ctrl+e-向下移動屏幕一行(保持光標不動)
Ctrl+y-向上移動屏幕一行(保持光標不動)
Ctrl+b- 向上滾動一屏
Ctrl+f- 向下滾動一屏
Ctrl+d- 向下滾動半屏
Ctrl+u- 向上滾動半屏
插入模式 - 插入/追加文本
i- 從光標前開始插入字符
I- 從行首開始插入字符
a- 從光標后開始插入字符
A- 從行尾開始插入字符
o- 在當前行之下另起一行, 開始插入字符
O- 在當前行之上另起一行, 開始插入字符
ea- 從當前單詞末尾開始插入
Ctrl+h-在插入模式下,刪除光標前的字符
Ctrl+w-在插入模式下,刪除光標前的單詞
Ctrl+j-在插入模式下,另起一行
Ctrl+t-在插入模式下,向右縮進,寬度由 shiftwidth 控制
Ctrl+d-在插入模式下,向左縮進,寬度由 shiftwidth 控制
Ctrl+n-在插入模式下,在光標之前插入自動補全的下一個匹配項
Ctrl+p-在插入模式下,在光標之前插入自動補全的上一個匹配項
Ctrl+rx- 插入寄存器x 的內容
Ctrl + ox -暫時進入正常模式以發出一個正常模式命令 x。
Esc- 退出插入模式
編輯文本
r- 替換當前字符
R-在ESC按下之前,替換多個字符
J- 將下一行合并到當前行,并在兩部分文本之間插入一個空格
gJ- 將下一行合并到當前行,兩部分文本之間不含空格
gwip- 重新調整段落
g~- switch case up tomotion
gu- 小寫操作修飾符
gU- 大寫操作修飾符
cc- 將光標所在的行刪除, 然后進入插入模式
C- 將光標處到行尾刪除, 然后進入插入模式
c$- 將光標處到行尾刪除, 然后進入插入模式
ciw- 將光標所在的單詞刪除, 然后進入插入模式
cworce-從光標位置開始, 修改單詞
s- 刪除當前字符, 然后進入插入模式
S- 清空當前行, 然后進入插入模式 (同cc)
xp- 當前字符后移
u- 撤銷
U - 撤銷上一次的改動行的操作
Ctrl + r -重做(取消撤銷)
.- 再次執行上個命令
選擇文本(可視化模式)
v- 進入可視化模式, 移動光標高亮選擇, 然后可以對選擇的文本執行命令
V - 進入可視化模式(行粒度選擇)
o- 切換光標到選擇區開頭/結尾
Ctrl+v-進入可視化模式(矩陣選擇)
O- 切換光標到選擇區的角
aw- 選擇當前單詞
ab- 選擇被 () 包裹的區域(含括號)
aB- 選擇被 {} 包裹的區域(含花括號)
at- 選擇被 <>標簽包裹的區域(含<>標簽)
ib- 選擇被 () 包裹的區域(不含括號)
iB- 選擇被 {} 包裹的區域(不含花括號)
it- 選擇被 <>標簽包裹的區域(不含<>標簽)
Esc - 退出可視化模式
可視化模式命令
>- 向右縮進
- 向左縮進
y- 復制
d- 剪切
~- 大小寫切換
u- 將選中文本轉換為小寫
U- 將選中文本轉換為大寫
剪切, 復制, 粘貼
yy- 復制當前行
2yy - 復制 2 行
yw- 復制當前單詞
yiw- 復制光標處的單詞
yaw- 復制光標處的單詞及其前后的空格
y$- 復制, 從光標位置到行末
p- 在光標后粘貼
P- 在光標前粘貼
dd- 剪切當前行
2dd- 剪切 2 行
dw- 剪切當前單詞
diw- 刪除光標處的單詞
daw- 刪除光標處的單詞及其前后的空格
D- 剪切, 從光標位置到行末
d$- 剪切, 從光標位置到行末 (同D)
x- 剪切當前字符
文字縮進
>>- 將當前行向右縮進,寬度由 shiftwidth 控制
<- 將當前行向左縮進,寬度由shiftwidth 控制
>%- 向右縮進 () 或 {} 內的區域(光標需置于括號上)
>ib- 向右縮進 () 內的區域
>at- 向右縮進 <>標簽內的區域
3==- 自動縮進 3 行
=%- 自動縮進 () 或 {} 內的區域(光標需置于括號上)
=iB- 自動縮進 {} 內的區域(光標需置于括號上)
gg=G- 自動縮進整個緩沖區
]p- 粘貼并調整縮進至當前行
退出
:w- 保存
:w !sudo tee %- 使用 sudo 保存當前文件
:wqor:xorZZ-保存并退出
:q- 退出(修改未保存時警告)
:q!orZQ-不保存強制退出
:wqa - 保存所有標簽頁并全部退出
查找/替換
/pattern-查找pattern
?pattern-向上查找pattern
n- 查找下一個
N- 查找上一個
:%s/old/new/g- 替換全部
:%s/old/new/gc- (逐個)替換
:noh[lsearch]- 移除搜索結果的高亮顯示
多文件搜索
:vim[grep] /pattern/{`{file}`}- 在多個文件中搜索 pattern
:cn[ext]- 移動至下一個
:cp[revious]- 移動至上一個
:cope[n]- 打開搜索結果列表
標簽
:tabnewor:tabnew{page.words.file}- 在新標簽中打開文件
Ctrl+wT-將窗口變成標簽
gtor:tabn[ext]-切換到下一個標簽
gTor:tabp[revious]-切換到上一個標簽
#gt- 切換到第# 個標簽
:tabm[ove] #- 移動標簽到第# 位(下標從 0 開始)
:tabc[lose]- 關閉當前標簽
:tabo[nly]- 關閉其他標簽
:tabdocommand - 在所有標簽中執行命令
多文件編輯
:e[dit] 文件名- 新建緩沖區打開filename
:bn[ext]- 切換到下個緩沖區
:bp[revious]- 切換到上個緩沖區
:bd[elete]- 關閉緩沖區
:lsor:buffers-列出所有打開的緩沖區
:sp[lit] 文件名- 新建緩沖區打開 filename 并水平分割窗口
:vs[plit] 文件名- 新緩沖區打開filename 并垂直分割窗口
:vert[ical] ba[ll]- editall buffers as vertical windows
:tab ba[ll]- edit allbuffers as tabs
Ctrl+ws-水平分割窗口
Ctrl+wv-垂直分割窗口
Ctrl+ww-在窗口間切換
Ctrl+wq- 關閉窗口
Ctrl+wx- 將窗口切換到下一個窗口
Ctrl+w=-使所有窗口的高度和寬度相等
Ctrl+wh-切換到左側窗口
Ctrl+wl-切換到右側窗口
Ctrl+wj-切換到下側窗口
Ctrl+wk-切換到上側窗口
Ctrl+wH-使游標所在視窗全高并移至最左 (最左垂直視窗)
Ctrl+wL-使游標所在視窗全高并移至最右 (最右垂直視窗)
Ctrl+wJ-使游標所在視窗全寬并移至最下 (最下水平視窗)
Ctrl+wK-使游標所在視窗全寬并移至最上 (最上水平視窗)
審核編輯:劉清
-
Unix系統
+關注
關注
0文章
15瀏覽量
9690 -
VIM
+關注
關注
0文章
134瀏覽量
15350
原文標題:vim超實用指南,收藏這一篇就夠了!
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論