日常記錄(2)vim操作查詢手冊

退出vim

按鍵

功能

:wq

保存退出

:w filename

保存到指定文件

:q

退出,如果文件修改但沒有保存,會提示無法退出

:q!

退出,不保存

 

進入插入模式

按鍵

功能

a

光標位置右邊插入文字

i

光標位置當前處插入文字

o

光標位置下方開啓新行

O

光標位置上方開啓新行

I

光標所在行首插入文字

A

光標所在行尾插入文字

 

進入可視化模式

按鍵

功能

Ctrl+v

進入可視化編輯模式

 

其它

按鍵

功能

:set expandtab

tab展開爲空格

cc/S

清除整行,進入插入模式

d$/C

刪除光標右邊文字/刪除光標右邊文字進入插入狀態

di)

刪除括號內的文本

:set undodir=”xxxx”

:set undofile

 

設置持久性撤銷和臨時保存的文件位置

:ls

顯示當前緩衝區文件信息

:e

打開新文件,其他文件放入緩衝區

:b 緩衝區編號或者文件名

切換到指定的緩衝區文件處

:bd/:bd3

刪除當前的緩衝區/指定緩衝區窗口

“byw

將當前光標到單詞結尾處的內容放入寄存器”b中(無”b則放入匿名寄存器””中)

“bdw

將當前光標處到單詞結尾的內容剪切到寄存器”b中

“bp

將”b中的內容粘貼

“1p/”2p/”3p

將自動存放的歷史刪除內容分別粘貼出來,其中”1,”2,”3爲寄存器

ctrl +n/p

代碼補全,向下查找/向上查找

ctrl+x+i

使用當前工程文件的中的參數進行補全

ctrl+x+f

使用當前工程文件和文件夾名補全

ctrl+x+j

補全標籤

 

查找功能

按鍵

功能

shift+*

向下查找當前光標所在的相同單詞並高亮顯示

shift+#

向上查找當前光標所在的相同單詞並高亮顯示

gd

從頭查找當前光標所在的相同單詞並高亮顯示

:noh

取消高亮顯示

n

定位到查找內容的下一個

N

定位到查找內容的上一個

:/String

查找以String組成的正則表達式

/^字符串

查找以字符串開始的行

/字符串$

查找以字符串結尾的行

 

替換功能

按鍵

功能

.

任意字符,不包括換行

\_.

任意字符,包括換行

^$

行開頭和結尾

\<\>

單詞開頭和結尾

\s

一個tab或空格

\d

一個數字

\a

一個字母

\w

一個數字或字母

\l

一個小寫字母

\u

一個大寫字母

\x

一個十六進制數

\X

一個非十六進制數

\D

一個非數字

\W

一個非字母

\S

一個非空白字符

A\|B

匹配A或B

\(X\)

\(A\|B\)C

將X作爲一個組

匹配AC或BC

*

重複前一個字符0到多次

\+

重複前一個字符1到多次

\?  \=

重複前一個字符0到1次

\{m,n}

重複前一個字符m到n次

\{-m,n}

重複前一個字符m到n次,儘可能少的字符數進行匹配

 

按鍵

功能

r

替換當前光標字符

:r 文件名

在光標當前位置下一行載入另一個文件

:%s/p1/p2/g

將文件中所有p1均用p2替代,p1和p2可以爲正則表達式

:n1,n2s/p1/p2/g

將n1到n2行所有p1均用p2替代

:%s/p1/p2/gciIe

替換時、全局替換,替換確認,忽略大小寫,區分大小寫,沒有匹配時不顯示錯誤

:106;/endstring/s/p1/p2/g

在106行到endstring行的p1內容替換爲p2

 

光標定位

行間定位

按鍵

功能

gg

到文件第一行行首

G

到文件最後一行行首,G必須爲大寫

:n

到指定行,n爲目標行數

[n]G

到指定行,n爲目標行數

行內定位

按鍵

功能

w/W

後移一個字(狹義)/後移一個字(廣義)

b/e,B/E

光標移動到當前字首/字尾(廣義,狹義)

$

光標移動到行末尾

0

光標移動到行開頭

fx

x爲一個字符,光標向右移動到字符x處

cw/ce/cb/c4l

刪除當前光標處經過的字符量,單個單詞不刪除空格,進入插入模式

c2w/c2aw

刪除光標後的兩個單詞,進入插入模式

dw/d3e/db/d4l

刪除當前光標處經過的字符量,並刪除空格

定位切換

按鍵

功能

Ctrl + o(O)

回到上次編輯的光標位置

ctrl + i(I)

回到下次編輯的光標位置

 

文本編輯

刪除和修改功能

按鍵

功能

[n]x

刪除光標後 n 個字符4x

[n]X

刪除光標前 n 個字符

D

剪切光標所在開始到此行尾的字符

[n]dd

刪除從當前行開始的 n 行(準確來講,是剪切,剪切不粘貼即爲刪除)

[n]yy

複製從當前行開始的 n 行

p

把粘貼板上的內容插入到當前行

dG

刪除光標所在行開始到文件尾的所有字符

J

合併兩行

.

執行上一次操作

u

撤銷前一個命令

ctrl+r

恢復對使用u命令的操作

 

多窗口操作

按鍵

功能

:sp file

橫向新增窗口,file爲窗口名

:vs file

縱向新增窗口

vim -o file1, file2…

橫向窗口打開文件

vim -O file1, file2…

縱向窗口打開多個文件

:qa

退出所有窗口

:res(ize) num

顯示行數調整爲num行

:res+num/:res-num

顯示行數增加num行/顯示行數降低num行

:vertical res num

縱向調整顯示行數

:n / :N / :n file

當前窗口顯示爲下一個窗口內容/上一個窗口內容/指定文件內容

:e#

回到剛纔編輯的文件

ctrl+w+上下左右

ctrl+w+hjlk

ctrl+w+HJLK

切換到上/下/左/右的一個窗口

切換到←↓↑→的一個窗口

移動窗口位置到←↓↑→

ctrl+w+w

切換到下一個窗口

ctrl+w+o

刪除當前外的其它窗口

ctrl+w+=

設置所有窗口大小相等

:resize +N -N N

設置窗口高度,加,減,等於

:vertical res +N -N N

設置窗口寬度,加,減,等於

:tabnew + filename

創建新標籤頁

gt/gT

切換到下一個/上一個標籤頁

 

輔助命令

按鍵

功能

:m N

將本行移動到第N行下方

:g/^/m 0

倒序文件行,g爲全局查找,^爲文件行

: +1d

刪除當前行的下一行

:g/^/+1d   :%norm jdd

刪除偶數行

:%norm jkdd

刪除奇數行

:%s/^\(.*\)\(\n\1\)\+$/\1/g

多行重複行壓縮爲1行

:%s/^\(.*\)\n\1$/\1/g

兩個重複行壓縮爲1行

set命令

按鍵

功能

:set list

顯示以“$”表示的換行符和以“^I”表示的製表符等特殊符號

:set nolist

取消特殊符號顯示

:set ic

搜尋時不區分大小寫

:set noic

搜尋時區分大小寫

:set nu

顯示行號

:set nonu

不顯示行號

:set foldmethod=indent

摺疊當前的所有代碼,摺疊方式爲縮進

zi

把摺疊狀態的所有代碼展開和關閉

zo

展開當前位置的摺疊代碼

zc

摺疊當前位置的展開代碼

za

切換當前位置的代碼展開和摺疊狀態

:vimgrep string **/*.py

跨文件查找字符串string。

:cn/:cp

跨文件查找字符串的下一個/上一個

 

其它命令

按鍵

功能

:!cmd

臨時執行外部shell命令

ctrl+u/ctrl+d

屏幕向前/向後翻頁半個屏幕

pageup/pagedown

屏幕向前/向後翻頁一個屏幕

:terminal

打開終端窗口

:map newcmd existcmd

設置命令映射,newcmd如;asdf

:help existcmd

查看已經存在的命令

:set hlsearch/nohlsearch

設置/取消高亮查找

:arg **/*.py

:args

:argdo cmd

匹配跨文件操作文件

查看跨文件操作文件

執行跨文件操作文件內容的命令cmd

qx

@x

qxq

錄製宏到x寄存器中

播放x中錄製的宏

清空寄存器x中的內容

:set wrapscan/nowrapscan

設置循環查找/非循環查找

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