您的位置:首页 > 运维架构 > Linux

Vim常用命令

2015-03-01 15:12 190 查看
一、打开文件
vim filename #打开文件,光标置于首行
vim +/pattern filename #打开文件,光标模式匹配的行
vim –r filename #恢复上次意外中止的编辑文件

二、一般模式的光标定位
Ctrl+f #屏幕向下移动一页
Ctrl+b #屏幕向上移动一页
Ctrl+d #屏幕向下移动一页
Ctrl+u #屏幕向上移动一页
0或者home键 #移动光标到行首
$或者end键 #移动光标到行尾
H #移动光标到屏幕最上方的行
M #移动光标到屏幕中间的行
L #移动光标到屏幕最下方的行
G #移动光标到文档最后一行
nG #移动光标到文档n行
gg #移动光标到文档首行
n<Enter> #下移光标n行

三、一般模式下对文本的编辑
x 删除光标处的字符
dw 删至下一个字的开头
dG 删除行,直到文件结束
dd 删除整行
db 删除光标前面的字
:n,md 从第 m 行开始往前删除 n 行
d, d$ 从光标处删除到行尾
u 撤消最后一次修改
U 撤消当前行的所有修改
yy 将当前行的内容放入临时缓冲区
nyy 将 n 行的内容放入临时缓冲区
p 将临时缓冲区中的文本放入光标后
P 将临时缓冲区中的文本放入光标前
ndd 删除 n 行放入名字为圆括号内的可命名缓冲区,省略 n 表示当前行
c 删除当前行并进入编辑模式

四、编辑模式下的文本替换和查找
:s/aa/bb/g 将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb
:s/\/bb/g 将光标所在行出现的所有 aa 替换为 bb, 仅替换 aa 这个单词
:%s/aa/bb/g 将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb
:12,23s/aa/bb/g 将从12行到23行中出现的所有包含 aa 的字符串中的 aa 替换为 bb
:12,23s/^/#/ 将从12行到23行的行首加入 # 字符
:%s= *$== 将所有行尾多余的空格删除
:g/^\s*$/d 将所有不包含字符(空格也不包含)的空行删除.
/xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示向上查找.其中xxx可以是正规表达式,关于正规式就不多说了.一般来说是区分大小写的, 要想不区分大小写, 那得先输入:set ignorecase

五、编辑多个文档
vim filename1 filenam2 同时编辑两个文件
:n 进入编辑filename1
:N 进入编辑filename2

六、多窗口编辑
vim filename1 编辑filename1
:sp filename2 分窗口编辑filename2
Ctrl+w+j 在两个窗口间切换
Ctrl+w+k 在两个窗口间切换
:diffthis 对比两个文件
:vsp 分窗口切换为水平模式

七、存档和退出
:w 将编辑的文档写入磁盘
:w! 强制写入文件
:wq 将文档写入磁盘并退出VIM
:q 退出VIM
:q! 强制退出VIM
ZZ 修改了文档则保存退出,反之则不保存退出
:w filename 将文档写入filename
:r filename 读入filename
:n1,n2 w filename 将n1到n2行写入filename
:! command 执行command命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux vim