Vim經常使用命令整理

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