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