編輯模式
移動
h宇挫、j肩榕、k塘雳、l
:上下左右移動
ctrl+f
:在文件中前移一頁(相當(dāng)于 page down)
ctrl+b
:在文件中后移一頁(相當(dāng)于 page up)
*
:在文件中搜索當(dāng)前光標(biāo)所在的單詞匾效,并移動到下一處
#
:在文件中搜索當(dāng)前光標(biāo)所在的單詞舷蟀,并移動到下一處
(
、)
:移動到前/后句的開始
{
面哼、}
:跳轉(zhuǎn)到當(dāng)前/下一個段落的開始
g_
:到本行最后一個不是 blank 字符的位置
fa
:到下一個為 a 的字符處野宜,也可以fs到下一個為s的字符
t,
:到逗號前的第一個字符。逗號可以變成其它字符
3fa
:在當(dāng)前行查找第三個出現(xiàn)的a
F
魔策、T
:和f以及t一樣匈子,只是方向相反
gg
:將光標(biāo)定位到文件第一行起始位置
G
:將光標(biāo)定位到文件最后一行起始位置
NG
或Ngg
:將光標(biāo)定位到第N行起始位置
H
:將光標(biāo)移動到屏幕的起始行
M
:將光標(biāo)移動到屏幕中間
L
:將光標(biāo)移動到屏幕最后一行
w
:右移光標(biāo)到下一個字的開頭
e
:右移光標(biāo)到下一個字的末尾
b
:左移光標(biāo)到前一個字的開頭
0
:數(shù)字0,左移光標(biāo)到本行的開始
$
:右移光標(biāo)到當(dāng)前行末尾
^
:移動光標(biāo)到本行的第一個非空字符
搜索匹配
/str
:正向搜索字符串:str
n
:繼續(xù)搜索str下一次出現(xiàn)的位置
N
:繼續(xù)搜索str上一次出現(xiàn)的位置
?str
:反向搜索字符串str
替換和刪除
rc
:用c替換光標(biāo)所指向的當(dāng)前字符
nrc
:用c替換光標(biāo)所指向的前n個字符
5rA
:用A替換光標(biāo)所指向的前5個字符
x
:刪除光標(biāo)所指向的當(dāng)前字符
nx
:刪除光標(biāo)所指向的前n個字符
dw
:刪除光標(biāo)右側(cè)的字符
ndw
:刪除光標(biāo)右側(cè)的n個字符
db
:刪除光標(biāo)左側(cè)的字符
ndb
:刪除光標(biāo)左側(cè)的n個字符
dd
:刪除光標(biāo)所在行
ndd
:刪除(剪切)n行內(nèi)容闯袒,并取出空隙
s
:用輸入的正文替換光標(biāo)所指向的字符
S
:刪除當(dāng)前行虎敦,并進入編輯模式
ns
:用輸入的正文替換光標(biāo)右側(cè) n 個字符
nS
:刪除當(dāng)前行在內(nèi)的 n 行,并進入編輯模式
cw
:用輸入的正文替換光標(biāo)右側(cè)的字
cW
:用輸入的正文替換從光標(biāo)到行尾的所有字符(同 c$ )
ncw
:用輸入的正文替換光標(biāo)右側(cè)的 n 個字
cb
:用輸入的正文替換光標(biāo)左側(cè)的字
ncb
:用輸入的正文替換光標(biāo)左側(cè)的 n 個字
cd
:用輸入的正文替換光標(biāo)的所在行
ncd
:用輸入的正文替換光標(biāo)下面的 n 行
c$
:用輸入的正文替換從光標(biāo)開始到本行末尾的所有字符
c0
:用輸入的正文替換從本行開頭到光標(biāo)的所有字符
復(fù)制粘貼
p
:小寫p政敢,將緩沖區(qū)的內(nèi)容粘貼到光標(biāo)區(qū)后面
P
:大寫P其徙,將緩沖區(qū)的內(nèi)容粘貼到光標(biāo)區(qū)前面
yy
:復(fù)制當(dāng)前行到內(nèi)存緩沖區(qū)
nyy
:復(fù)制n行內(nèi)容到內(nèi)存緩沖區(qū)
“+y
:復(fù)制1行到操作系統(tǒng)粘貼板
“+nyy
:復(fù)制n行到操作系統(tǒng)粘貼板
撤銷和重復(fù)
u
:撤銷前一條命令的結(jié)果
.
:重復(fù)最后一條修改正文的命令
插入模式
進入插入模式
i
:在光標(biāo)左側(cè)插入正文
a
:在光標(biāo)右側(cè)插入正文
o
:在光標(biāo)所在的下一行增加新行
O
:在光標(biāo)所在的上一行增加新行
I
:在光標(biāo)所在行的開頭插入
A
:在光標(biāo)所在行的末尾插入
命令模式
打開保存退出
:e path_to_file/filename
:在已經(jīng)啟動的vim編輯器中打開文件
:w
:保存
:w file_temp
:文件另存為
:q
:在未作修改的情況下退出
:q!
:放棄所有修改,退出編輯程序
:wq
:保存并退出
行號與文件
:n
:將光標(biāo)移到第n行
:345
:將光標(biāo)移到第345行
:345w file
:將第345行寫入file文件
:3,5w file
:將第3至5行寫入file文件
:3,.w file
:將第三行至當(dāng)前行寫入file文件
.,w file
:將當(dāng)前行至最后一行寫入file文件
.,.+5w file
:從當(dāng)前行開始將6行內(nèi)容寫入file文件
1,$w file
:將所有內(nèi)容寫入file文件喷户,相當(dāng)于:w file命令
:r file
:讀取file文件的內(nèi)容唾那,插入當(dāng)前光標(biāo)所在行的后面
:e file
:編輯新文件file代替原有的內(nèi)容
:f file
:將當(dāng)前文件重命名為file
:f
:打印當(dāng)前文件的名稱和狀態(tài),如文件的行數(shù)褪尝、光標(biāo)所在的行號等
字符串搜索
:/str/
:正向搜索闹获,將光標(biāo)移到下一個包含str的行
:?str?
:正向搜索期犬,將光標(biāo)移到上一個包含str的行
:/str/w file
:正向搜索,將第一個包含字符串str的行寫入file文件
:/str1/,/str2/w file
:正向搜索避诽,并將包含字符串str1的行至包含字符串str2的行寫入file文件
Vim中的正則表達式
:/^struct/
:找出以字符串struct開頭的行龟虎。^
比較每行開頭的字符
部分特殊字符及含義:
^
:放在字符串前面,匹配行首的字符串
$
:放在字符串后面茎用,匹配行末的字符串
\<
:匹配一個字的開頭
\>
:匹配一個字的結(jié)尾
.
:匹配任何單個字符
[str]
:匹配str中任何單個字符
[^str]
:匹配任何不在str中的單個字符
[a-z]
:匹配a到z之間的任一字符
*
:匹配前一個字符的0次或多次出現(xiàn)
\
:轉(zhuǎn)義后面的字符
正文替換
:%s/str1/str2/
:用字符串str2替換行中首次出現(xiàn)的字符串str1
:s/str1/str2/g
:用字符串str2替換行中所有出現(xiàn)的字符串str1
.,$ s/str1/str2/g
:用字符串sr2替換當(dāng)前行到末尾所有出現(xiàn)的字符串str1
1,$ s/str1/str2/g
:用字符串str1替換全文的字符串str1
g/str1/s//str2/g
:功能同上
m,ns/str1/str2/g
:將從m行到n行的str1替換成str2
:%s/str1/&/gn
:在Vim中統(tǒng)計當(dāng)前文件中字符串 str1 出現(xiàn)的次數(shù)
刪除正文
:d
:刪除當(dāng)前行
:3d
:刪除3行
.,$d
:刪除當(dāng)前行至正文的末尾
/str1,/str2/d
:刪除從str1到str2的所有行
:g/^\(.*\)$\n\1$/d
:刪除連續(xù)相同的行遣总,保留最后一行
:g/\%(^\1$\n\)\@<=\(.*\)$/d
:刪除連續(xù)相同的行,保留最開始一行
:g/^\s*$\n\s*$/d
:刪除連續(xù)多個空行轨功,只保留一行空行
:5,20s/^#//g
:刪除5到20行開頭的 # 注釋
選項設(shè)置
:set option
:設(shè)置選項option
常見的功能選項
autoindent
:設(shè)置該選項旭斥,則正文自動縮進
ignorecase
:設(shè)置該選項,則忽略規(guī)則表達式中中大小寫字母的區(qū)別
number
:設(shè)置該選項古涧,則顯示正文行號
ruler
:設(shè)置該選項垂券,則在屏幕底部顯示光標(biāo)所在行、列的位置
tabstop
:設(shè)置按 Tab 鍵跳過的空格數(shù)羡滑。例如 :set tabstop=n菇爪,n 默認(rèn)值為 8
mk
:將選項保存在當(dāng)前目錄的.exrc文件中
Sell切換
!:shell_command
:執(zhí)行完shell_command后回到Vim
這稱為Shell切換。它允許執(zhí)行任何可以在標(biāo)準(zhǔn)的Shell提示符下執(zhí)行的命令柒昏。當(dāng)這條命令執(zhí)行完畢凳宙,控制返回給編輯程序。又可以繼續(xù)編輯對話過程职祷。
分屏
:sp
:上下分屏
:vsp
:左右分屏
vim -On file1 file2 ...
:打開file1和file2氏涩,垂直分屏
vim -on file1 file2 ...
:打開file1和file2,水平分屏
標(biāo)簽頁
:tabnew
:在vim中新建一個標(biāo)簽頁
:tabnew filename
:新建標(biāo)簽頁的同時打開文件