Vim使用指南

原文地址:https://www.jeremyjone.com/460/ ,轉載請註明

雖然現在各種IDE,編輯器很好用,我個人也很喜歡使用VS Code,但有時候還是離不開Vim,比如終端。。。這個真的是。。。

自己總結了一下Vim使用方式,首發於 → 幕布 ← ,有興趣的同學可以收藏,同時也免費給幕布打一波廣告,真心好用。

內容同時也更新在我自己的 → 工具箱 ← ,這個剛開始整理,我會慢慢把我不同地方的文檔整理到一起,這算是給自己的一波強勢廣告~。

好吧,話不多說,把文檔內容粘貼過來。


Vim 使用說明

打開文件

vim filename 打開文件

vim -R filename 只讀打開文件

vim -M filename 強制避免對文件進行修改打開文件

vim filename1 filename2 filename3 同時打開多個文件,但是隻顯示第一個文件內容

:next | :n 編輯下一個文件

:wnext | :wn 保存當前文件內容並且繼續編輯下一個文件

Ctrl+^ 在兩個文件之間切換

vim -o filename1 filename2 爲每一個文件打開一個窗口

:args filename4 filename5 filename6 在不關閉vim的同時,重新定義文件列表

保存和退出

:w 保存

:q | :quit 退出

ZZ | :wq | :x 保存退出

ZQ | :q! 不保存直接退出

:edit filename | :e filename 編輯另一個文件

:e! 放棄當前文件所有修改並重新載入原始內容

:qall 放棄所有窗口的修改並退出

:wall 保存所有窗口的修改

:wqall 保存所有修改並退出

:w filename | :sav filename | :saveas filename 另存爲

:f filename | :file filename 將修改的版本另存爲新文件,同時不保存源文件的修改

:set autowrite 設置自動存盤

該命令在每個:next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、Ctrl+]、Ctrl+^命令時執行。

Visual模式

v 進入Visual模式,從光標當前位置開始,移動所經過的內容都會被選中,直到下一次v結束

V 進入Visual模式,從光標當前行首開始,移動所經過的行都會被選中,直到下一次V結束

Ctrl+v 從光標當前位置開始,選中光標起點和終點所構成的矩形區域,再按Ctrl+v結束

ggVG 快速全選,gg:轉到行首,V:選擇整行,G:轉到尾行

顯示設置

:args 顯示當前文件

:set number | :set nu! 顯示行號

:set nonumber | :set nonu! 不顯示行號

:set ruler 在Vim窗口右下角顯示當前光標位置

:set autoindent 自動縮進

:set hlsearch 查詢結果高亮

:set nohlsearch 取消查詢結果高亮

:split | :vsplit 分割窗口

Ctrl+w 切換當前活動窗口

Ctrl+w h 切換到左邊窗口

Ctrl+w j 切換到下邊窗口

Ctrl+w k 切換到上邊窗口

Ctrl+w i 切換到右邊窗口

Ctrl+w t 切換到頂部窗口

Ctrl+w b 切換到底部窗口

:close 關閉活動窗口,阻止關閉最後一個活動窗口

:only 關閉除當前活動窗口之外的所有窗口,修改過的窗口不會關閉

:set warp 自動換行

:set ignorecase 忽略大小寫

== 對當前行自動格式化

數字== 對當前行起的下面"數字"行進行格式化

gg=G 對整個文檔進行格式化

編輯

增加

i 在光標之前插入

支持數字:3i!,在光標之前插入三個"!"

I 在當前行首插入

支持數字:3I@,在行首插入三個"@"

a 在光標之後插入

支持數字:3a!,在光標之後插入三個"!"

A 在當前行尾插入

支持數字:3A@,在行尾插入三個"@"

o 在當前光標行之下插入空行

O 在當前光標行之上插入空行

刪除

d+位移命令 刪除從光標位置到位移處的內容

支持數字:    d+2+方向鍵,剪切左右方向的兩個字符,剪切上下方向2行+當前行(共三行)的內容

- 3dw  |  d3w     刪除當前光標後面的3個單詞
- 3d2w     刪除2光標後面兩個單詞,執行3次,共刪除6個單詞

- 左:    剪切前一個字符
- 右:    剪切後一個字符
- 上:    剪切當前行和上一行
- 下:    剪切當前行和下一行
- Shift+左:    剪切至當前單詞首字符
- Shift+右:    剪切至下一個單詞首字符
- dw     刪除從當前位置到下一個單詞詞首
- db     刪除從當前位置到前一個單詞詞首
- diw     刪除光標所在的單詞,不包括空白字符
- daw     刪除當前光標所在單詞,包括之後的空白字符
- dG     刪除當前行至文件末尾的內容
- dgg     刪除當前行至文件行首的內容

dd 刪除當前光標整行,並將之後內容上移一行

D | d$ 刪除到行尾

c+位移命令 刪除從光標處到位移處的內容,並進入編輯模式。具體參照 “d+位移命令”

C | c$ 刪除光標處至行尾,並進入編輯模式

x | dl 刪除當前光標右邊的一個字符

支持數字:3x,刪除光標右邊三個字符

X | dh 刪除當前光標左邊的一個字符

支持數字:3X,刪除光標左邊三個字符

s | cl 刪除當前光標之後的一個字符並進入編輯模式

支持數字:3s,刪除光標右邊三個字符

S | cc 刪除當前整行,保留該空行並且保留縮進,進入編輯模式。

支持數字:3S,刪除當前行開始往下3行內容

J 刪除當前行的換行符,相當於將下一行內容上移至當前行末尾

複製和粘貼

d+位移命令 剪切。(不貼則用作刪除)

y 複製

具體操作同剪切(d)

+y 複製到系統剪貼板

yy 複製一行

支持數字:3yy,複製當前行與下面兩行

p 粘貼到光標之後

支持數字:3p,粘貼3次

P 粘貼到光標之前

支持數字:3P,粘貼3次

+p 從系統剪貼板粘貼

重複和撤銷

u 撤銷

支持數字,3u,撤銷3次

Ctrl+r | . 重做,"."需要在Normal模式下執行

支持數字,3 + Ctrl+R,重做三次

U 重做,一次撤銷對一行的操作,再次使用則會撤銷前一次的"U"操作

移動

方向鍵 移動

數字+方向鍵 移動

- 左:向左移動"數字"個字符
- 右:向右移動"數字"個字符
- 上:向上移動"數字"行
- 下:向下移動"數字"行

w | W 移動到下一單詞首字符

支持數字,3w,移動到後面3個單詞首字符

b | B 移動到前一單詞首字符

支持數字,3b,移動到前面3個單詞首字符

e | E 移動到下一個單詞末字符

支持數字,3e,移動到後面3個單詞末字符

$ | <END>鍵 移動到當前行末尾

支持數字,3$,移動到下3行(當前行爲第一行)末尾

0 | ^ | <HOME>鍵 移動到當前行首

不支持數字

G 移動到最後一行

數字+G 移動到指定行

gg 移動到第一行

ge 移動到前一單詞末字符

支持數字,3ge,移動到前面3個單詞末字符

數字+% 移動到文檔某一位置,如:50%,移動到文檔中間,90%,移動到文檔靠近尾部

:+數字 移動到文檔的某一行

H 移動到當前界面頂部

M 移動到當前畫面中部

L 移動到當前界面底部

( 移動到句首

) 移動到句尾

{ 移動到段首

} 移動到段尾

Ctrl+o 光標跳轉到之前的位置

Ctrl+i 光標跳轉到之後的位置(在使用Ctrl+o之後有效)

標記

m+字符 設定標記,將當前光標處用指定字符作爲標記

````+字符```跳轉到指定標記,如果該字符標記位存在,則會跳轉,使用m設定標記

:marks 查看標記

`` 如果使用了G進行跳轉,那麼該命令則會在當前位置和跳轉後的位置進行來回切換

##滾動屏幕

Ctrl+y 向上一行

Ctrl+e 向下一行

Ctrl+u 向上半屏

Ctrl+d 向下半屏

Ctrl+b 向上整屏

Ctrl+f 向下整屏

zt 把當前行置於屏幕頂端

zz 把當前行置於屏幕中央

zb 把當前行置於屏幕底端

查找和替換

f+字符 光標跳轉到當前行的下一個該字符

F+字符 光標跳轉到當前行的前一個該字符

t+字符 光標跳轉到當前行的下一個該字符的前一個字符

T+字符 光標跳轉到當前行的前一個該字符的前一個字符

; 用來重複 f | F | t | T 這四個命令

% 跳轉到匹配成對的括號,包括小括號,中括號,大括號

/ | ? +字符串 搜索一個字符串,

/ 用於向後查找

? 用於向前查找

n 用於該目標字符串的下一個位置(與 / | ? 指定方向同向)

支持數字,3n,該目標字符串在當前查找方向同向的第三次出現的位置

N 用於該目標字符串的上一個位置(與 / | ? 指定方向反向)

支持數字,3N,該目標字符串在當前查找方向反向的第三次出現的位置

\< 單詞開始

\> 單詞結尾

/<the\>,這樣只會搜索單詞 "the",而不會搜索到類似 "there"、"them"

$ 匹配一行結尾

. 匹配任意字符

\ 匹配特殊字符

^ 匹配一行開頭

* 選取光標當前所在單詞向後進行搜索

支持數字,3*,該單詞第三次出現的位置

# 選取光標當前所在單詞向前進行搜索

支持數字,3#,該單詞第三次出現的位置

替換文本

:s/文本1/文本2/ 用文本2替換第一次出現的文本1

:s/文本1/文本2/g 用文本2替換當前行所有匹配到的文本1

:%s/文本1/文本2/g 用文本2替換整個文件中所有匹配到的文本1

:%s/文本1/文本2/gc 用文本2替換整個文件中所有匹配到的文本1,並且每次替換時確認

r 等待鍵入下一個字符,用於替換當前光標處的字符

支持數字,3r+鍵入字符,當前光標處開始,往後3個字符替換爲鍵入的字符,如果替換爲換行符,則只會替換爲一個
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章