复制当前光标下单词到命令行 ctrl-r ctrl-w
还有一个有用的命令就是g
g是global的意思
意思是执行全局操作
语法如下
:范围g/条件/[动作]
如
:%g/hello/d
表示删除所有包含hello的行 是不是很方便
当然动作可以没有 没有时只打印查找到的结果
正则表达式
在vim的查找和代替及全局操作命令中都可以使用正则表达式
有了正则表达式的帮助 写出强大的命令更方便
下面就说说在vim中使用的正则表达式吧
CODE
^ 匹配行首
$ 匹配行尾
\< 匹配单词的开始
\> 匹配单词的末尾
. 匹配除换行符外的任意一个字符
\_.匹配任意一个字符 包括换行符
\w 匹配一个单词字符 也就是a-zA-Z0-9 可以h \w得到详细信息
\s 匹配空格字符包括空格和tab字符
\n 匹配换行符
特殊字符 使用CTRL-V CTRL-要输入的特殊字符, 注意在win下使用ctrl-q代替ctrl-v
如ctrl-v ctrl-M 是^M
[] 匹配这里面的任意一个字符 如[a-z]匹配任意一个a-z的字符
\(串\) 把这个串保存起来 后面可以使用\1 \2来引用符合条件的串
* 匹配0次或多次
\+ 匹配1次或多次
\= 匹配0次到1次
\{最少次数,最多次数}匹配指定的次数 ,如果最少次数为- 表示匹配最小的的次数 看帮助
如 想去掉行尾无用的空格
如下
%s/\s\+$//g
想查找单词foo
/\
相当于在foo下输入*或是#
想把所有的fool开始的单词 代替成 is fool这个单词
:%s/\(\
查找所有的以hello开始的段 并把它删除 段的结束符号是\n\n
:%s/^hello\_.\{-1,1000000}\n\n//g
-1表示最少匹配1 次 并且使用最少匹配
自动缩进使用gg=G
偶下面再讲一下查找代替功能吧 vim带有正则表达式功能 所以功能比其它vimdows下的都要强大
查找与替换
按键名称
/ 向后查找
? 向前查找
:s 替换
查找时按键
n 正向一个
N 反向下一个
快速查找(在命令模式下)
* 向后查找光标下的单词 全字匹配
# 向前查找光标下的单词 全字匹配
范围
%全文代替
替换时模式
g 全部代替 如果没有这个表示只代替一个
c 需要确认
高级命令:
g
下面开始讲上面的命令
查找命令
在命令模式下输入
/要查找的内容<回车>
然后就开始跳到找到的内容了
按n表示下一个
按N表示上一个
按?是向上查找 这时n表示上一个 N表示下一个 动手试一试
在命令模式下 把光标停在某个单词下面 然后按*
这时就会向下查找这个单词
按#是向上查找 这时一样可以使用n N跳转
替换功能:
替换命令是在命令模式下输入
:范围s/要查找的内容/代替后的词/参数
如果没有指定参数,那只代替一次 如果想代替多次可以加上/g 如果需要确认那可以加上c
如
:%s/helo/hello/gc
在全文范围内查找helo 并把它代替成hello 代替时需要确认
范围的表示
%表示全文
开始行号,结束行号 表示在这个范围内代替
结束行号可以使用绝对行号 如1090
也可以使用相对行号 如+5表示向下5行
还可以使用查找条件
如
:1,/helo/s/wwww/web/gc
表示从第一行查找到包含helo的行 在这个范围内替换
.表示当前行 或是可以不写
这样上面的命令就可以变成
:.,/helo/s/wwww/web/gc
或
:,/helo/s/wwww/web/gc
打开多个文件以后,简单的切换方法是:b1,:b2这样切换,具体的可以用:ls看打开的文件列表
如果当前目录是在makefile的地方或者automake的build下面,可以:make编译,后面的许多事情自然可以水到渠成了
阅读(2731) | 评论(0) | 转发(0) |