Vim常用命令整理

Vim命令浩如烟云,我们很难精通所有命令,在实际工作中我们常用的命令也就那么几十个。文本整理了工作中常用的vim命令,掌握了以下命令就基本满足我们工作需要。

文件命令

我们经常使用vim file 命令打开一个文件,同时我们也可以使用vim file1 file2 file3 ...打开多个文件。

如果我们已经打开了某个文件file1,使用 :open file2 在新窗口中打开其他文件。这个时候我们只是看得到file2,使用      :split file1 命令可以分割当前窗口显示file1。

:bn 切换到下一个文件

:bp 切换到上一个文件

:args 查看当前打开的文件列表,正在编辑的会用方括号扩起来。

窗口命令

上面提到使用split用新窗口打开文件,但是窗口都是横向的,使用vsplit可以纵向打开窗口。

使用crtl+ww 移动光标到下一个窗口

使用crtl+wj 移动光标到下方窗口

使用trl+wk 移动光标到上方窗口

关闭窗口

使用 :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

 

你可能感兴趣的:(工作记录)