Vim命令浩如煙雲,咱們很難精通全部命令,在實際工做中咱們經常使用的命令也就那麼幾十個。文本整理了工做中經常使用的vim命令,掌握瞭如下命令就基本知足咱們工做須要。php
咱們常常使用vim file 命令打開一個文件,同時咱們也可使用vim file1 file2 file3 ...打開多個文件。html
若是咱們已經打開了某個文件file1,使用 :open file2 在新窗口中打開其餘文件。這個時候咱們只是看獲得file2,使用 :split file1 命令能夠分割當前窗口顯示file1。vim
:bn 切換到下一個文件3d
:bp 切換到上一個文件htm
:args 查看當前打開的文件列表,正在編輯的會用方括號擴起來。blog
上面提到使用split用新窗口打開文件,可是窗口都是橫向的,使用vsplit能夠縱向打開窗口。文檔
使用crtl+ww 移動光標到下一個窗口字符串
使用crtl+wj 移動光標到下方窗口get
使用trl+wk 移動光標到上方窗口it
使用 :close 關閉窗口,爲防止誤操做,最後一個窗口不能使用這個命令關閉。
使用 ZZ (注意是大寫的)保存並關閉除當前窗口外的全部其餘窗口。
在窗口中咱們可使用一些命令來輔助咱們進行一些操做
命令格式: :!command
例如:
:!pwd 查看當前文件路徑
:!ls -al 查看當前路徑下的文件
:!php file.php 執行某個php腳本
:suspend或ctr+Z(注意是大寫的)能夠掛起vim,使用fg能夠返回到vim。
PHP代碼使用//註釋代碼,在vim中能夠快速註釋某些行。
:20,40 s/^/\/\/ 註釋20到40行
:20,40 s/^\/\/ 取消20到40行的註釋
:1,$ s/^/\/\/ 註釋整個文檔
:1,$ s/^\/\/ 取消整個文檔的註釋
:% s/^/\/\/ 註釋整個文檔
:% s/^\/\/ 取消整個文檔的註釋
i 在當前位置前插入
a 在當前位置後插入
I 在當前行首插入
A 在當前行尾插入
o 在當前行的下一行插入新行
O 在當前行的上一行插入新行
/text 查找text字符串,按n鍵查找下一個,按N查找上一個
?text 反向查找text字符串,按n鍵查找下一個,按N查找上一個
關於搜索的一些設置:
:set ignorecase 設置忽略大小寫
:set noignorecase 設置不忽略大小寫
若是某個詞太長,不便拼寫,可將光標移到這個詞上,而後按*或#能夠對該詞進行搜索,至關於/text搜索
:set hlsearch 高亮搜索結果,全部匹配的字符都高亮
:set nohlsearch 關閉高亮顯示
:nohlsearch 關閉當前高亮顯示,若是從新搜索或按n或N鍵則會在此高亮
:set incsearch 逐步所搜模式,對當前輸入的字符進行搜索,而沒必要等字符輸完
:set wrapscan 從新搜索,在搜索到文件頭和文件尾時自動返回繼續搜索,默認開啓
u 撤銷
U 撤銷對正航的的操做
ctr+r 重作。
ra 把當前光標所在字符替換成a。
:s/old/new/ 把當前所在行中第一個匹配的old字符串用new字符串替換
:s/old/new/g 把當前所在行中全部匹配old的字符串替換成new
:%s/old/new/ 用new替換old,替換全部行中第一個匹配的字符串
:%s/old/new/g 用new替換old,替換文本中全部知足的字符串
:10,20 s/^/ /g 在第10行到20行每行行首加四個空格。
ddp 交換光標所在行和其下緊鄰的一行。
h 向左移動一個字符
l 向右移動一個字符
j 向下移動一行
k 向上移動一行
我的以爲使用h、l、j、k還不如直接使用四個方向鍵更直接些。
在vim中不少命令能夠結合數字使用,好比20h表示向左移動20個字符,
w 向後移動一個單詞
b 向前移動一個單詞
e 同w,只不過光標停留在單詞尾部
^ 移動到本行行首非空白字符上
0(數字0) 移動到本行行首第一個字符上
$ 移動到本行行尾,3$移動到下面3行行尾
gg 移動到文件頭部
G 移動到文件尾部
:50 移動到第50行
ctrl+e 向下滾動一行
ctrl+y 向上滾動一行
ctrl+d 向下滾動半屏
ctrl+u 向上滾動半屏
ctrl+f 向下滾動一屏
ctrl+b 向上滾動一屏
x 刪除當前字符,等同dl,3x刪除當前位置起的三個字符
X 刪除當前字符的前一個字符,等同dh
dd 刪除當前行
dj 刪除上一行
dk 刪除下一行
10d 刪除當前行開始的10行
D 刪除當前位置至行尾,等同d$
kdgg 刪除當前以前的全部行,不包括當前行
jdG 刪除當前行後的全部行,不包括當前行
:1,10d 刪除1~10行
:11,$ 刪除11行及之後的全部行
:1,$ 刪除文檔中的全部行,等同於dG
J 刪除兩行之間的空行
yy 複製當前行
3yy 拷貝當前行開始的3行,nyy表示從當前行開始拷貝n行(包括當前行)
p 在當前光標以後粘貼,若是拷貝的行就在當前行的下一行開始粘貼
P 在當前行前一行粘貼
:1,20 co 30 把第一行到20行插入到第30行後
:1,$ co $ 把文件複製一份並追加到末尾
進入視圖模式移動光標便可選中文本,按p鍵複製選中的文本
xp 交換當前字符和其後的一個字符
進入視圖模式移動光標便可選中文本,按d鍵剪切選中的文本
3dd 從當前行開始剪切3行
:1,10d 剪切1到10行
:1,10 m 20 將1到10行移到20行後
:wq 保存並退出
:x 保存並退出
:q! 強制退出並放棄全部修改
:e! 放棄全部修改並從新打開文件
本文參考:http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html