vim常用命令
分屏
一、如果在终端中开没有打开vim,可以:
分为左右两屏显示:
$ vim -o filename1 filename2
分为上下两屏显示:
$ vim -O filename1 filename2
二、如果已经用vim打开了一个文件,想要在窗口中同时再打开另一个文件:
分为左右两屏显示:
:vs filename
分为上下两屏显示:
:sp filename
其中,vs可以用vsplit替换,sp可以用split替换。
如果finename不存在,则会新建该文件并打开。
三、关闭窗口
关闭光标所在的窗口:
:q
#或
:close
关闭除光标所在的窗口之外的其他窗口:
:only
关闭所有窗口:
:qa
四、切换窗口
打开了多个窗口,需要在窗口之间切换时:
ctrl + w w
即按住ctrl键,再按两下w键。
或者ctrl + w <h|j|k|l>
即按住ctrl键,按一次w键,再按一次表示方向的h或j或k或l,则光标会切换到当前窗口的 左|下|上|右 侧的窗口
copy:http://blog.chinaunix.net/uid-28253945-id-3393428.html
撤销
在命令模式下:
撤销:u
恢复撤销:Ctrl + r
行号
显示行号:set number或者:set nu
取消行号:set nonumber 或者 set nonu
在~/.vimrc加一行set nu,即可永久显示行号
退格键
若退格键失效,可以在~/.vimrc加入
set backspace=indent,eol,start
复制粘贴
按v选中,按y复制,按p粘贴
vim有12个粘贴板,分别是0、1、2、…、9、a、“、+;
用:reg命令可以查看各个粘贴板里的内容。
在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容;
要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下:
“号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容; +号粘贴板是系统粘贴板,用"+y将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制到vim中,需要在正常模式下按"+p;
要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按"Np,其中N为粘贴板号,如上所述,可以按"5p将5号粘贴板里的内容粘贴进来,也可以按"+p将系统全局粘贴板里的内容粘贴进来。
查找替换
/是从上往下找,?是从下往上找
替换
s/old/new 用new替换行中首次出现的old
s/old/new/g 用new替换行中所有出现的old
#,# s/old/new/g 用new替换从第#行到第#行中出现的old
% s/old/new/g 用new替换整篇中出现的old
如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如
s/old/new/c 或s/old/new/gc
光标移动
gg 将光标移动到开头
G 将光标移动到结束
ggvG 全选