保存文件
:w (小写)保存文件
?:wq (小写)保存并退出vim
:w 文件名1 将文件另存为文件名1
:ZZ (大写)保存文件并退出,相当于:wq
:wq! (小写)文件所有者强制保存只读文件,如果不是文件所有者进行此操作,不能成功
:q! 退出不保存文件
显示行号
:set nu(mber) 显示行号
:set nonu 取消显示行号
:set nu! 取消显示行号
浏览目录
:e 目录
列出指定目录下的文件和目录
导入文件或shell命令执行结果
:r 文件名1 将文件1内容引入到本文件中
:!shell命令 在vim中执行shell命令,执行完后按回车会到vim界面
:r !shell命令 (r与!之间有空格)将shell命令执行的结果导入到本文件中
简单排版
:ce(nter) 居中显示光标所在行
:ri(ght) 靠右显示光标所在行
:le(ft) 靠左显示光标所在行
自动注释和缩进
关闭自动注释
:set fo-=r
关闭自动缩进(这个对C/C++代码好像无效)
:set noautoindent
关闭C语言缩进
:set nocindent
环境恢复
:set fo=r
:set autoindent
:set cindent
查找
查找string
/string 从光标处开始向下开始查找字符串string;按n(小写)查找下一个,按N(大写)查找上一个
?string 从光标处开始向上开始查找字符从string;按n(小写)查找上一个,按N(大写)查找下一个
查找光标下的单词
* 向下完整匹配光标下的单词
# 向上完整匹配光标下的单词
g* 向下部分匹配光标下的单词
g# 向上部分匹配光标下到单词
查找:特殊设置
:set ic 查找时,忽略大小写
:set noic 取消查找时忽略大小写
:f string (小写f与string有空格)搜索一行中匹配到的string
替换
语法:
:{作用范围}s/{目标}/{替换}/{替换标志}
作用范围,没有指定范围,则作用于当前行
1、:1,10s/from/to/ 表示在第1到第10行(包含第1,第10行)之间搜索替换;
2、:10s/from/to/ 表示只在第10行搜索替换;
3、:%s/from/to/ 表示在所有行中搜索替换;
4、:1,$s/from/to/ 同上。
替换标记
1、c confirm,每次替换前询问;
2、e error, 不显示错误;
3、g globle,不询问,整行替换。如果不加g选项,则只替换每行的第一个匹配到的字符串;
4、i ignore,忽略大小写。
这些选项可以合并使用,如cgi表示不区分大小写,整行替换,替换前询问。
例子:
:%s/old/new/g 全文将old替换为new,不提示
:n1,n2s/old/new/c n1-n2行中,将old替换为new,提示是否替换
PS:在替换文本old或new中有/字符时,需要用\进行转义