|
Andy Niu Help
1.0.0.0
|
变量 | |
| 查找 | |
| 替换 | |
| 区域选择 | |
| 行号 | |
| 删除、复制、粘贴 | |
| 转移 | |
| 撤销与重做 | |
| magic | |
| 正则表达式 | |
详细描述
变量说明
| magic |
1、在vim中,对于正则表达式,+ 表示+字符本身,要表示匹配1个或多个,使用\+ 2、这与正则表达式的使用习惯不一致,在正则表达式中,+表示匹配1个或多个,\+表示+字符本身。 3、怎么解决这个问题,使用 :set magic,就和正则表达式的使用习惯一致了。 4、使用 :set nomagic 切换回去到vim的默认模式。
- 参见
| 删除、复制、粘贴 |
1、小写x相当于del,大写X相当于backspace
2、dd删除当前行,也是剪切当前行
:1,5d 删除第1行到第5行
:1,$d 删除第1行到最后一行,也就是所有的行
5dd 当前位置向下删除5行
3、yy复制当前行,5yy从当前行向下复制5行
4、小写p在下一行粘贴,大写P在上一行粘贴
5、复制粘贴是 yy p 剪切粘贴是 dd p
- 参见
| 区域选择 |
1、小写v:字符选择 2、大写V【shift+v】:行选择 3、ctrl+v:矩形选择 4、在区域选择的情况,d删除选择的区域,y复制选择的区域,小写p在下一行粘贴,大写P在上一行粘贴
- 参见
| 撤销与重做 |
1、u 撤销 2、Ctrl+r 重做
- 参见
| 替换 |
1、当前行第一个111替换为222,:s/111/222/
2、当前行所有的111替换为222,:s/111/222/g
3、表示范围从1行到5行,:1,5xxx,$表示最后一行,xxx表示 s/111/222/ 或者 s/111/222/g
4、整个文档,:%xxx
5、反向引用,将ab替换为ba,:%s/\(a\)\(b\)/\2\1/g (注:小括号要转义)
6、利用反向引用的特点,可以统计单词出现的个数,如下:
:%s/ab/&/g 其中&反向引用前面的单词ab,也就是说替换并没有修改内容。
按下Enter会显示替换了多少个,3 substitutions on 3 lines
如果不显示替换了多少个,按下u会显示撤销了几个变化,3 changes; before #63 2 seconds ago
7、删除行首的空白字符(包括空格符和制表符),如下:
:%s/^\s\+//g
8、删除空行
:%g/^\s*$/d
- 参见
| 查找 |
1、查找111,/111 然后enter,n下一个,N上一个
2、vim支持正则表达式,如/[0-9]\+
3、表示出现次数:*【0次或多次】 \+【1次或多次】 \?或者\=【0次或1次】 \{m,n}【m次到n次】
4、vim默认是区分大小写的,怎么不区分大小写呢?
:set ic 【:set ignorecase 】 不区分大小写
:set noic【:set noignorecase】 区分大小写
上面的设置会导致全局起效,如果只想当前搜索起效,使用如下:
/hau\c 小写c,当前搜索不区分大小写,等价于 /\chau
/hau\C 大写C,当前搜索区分大小写,等价于 /\Chau
5、搜索结果高亮显示
:set hls 【:set hlsearch 】 高亮显示
:set nohls【:set nohlsearch】 取消高亮显示
注:只有vim才有这个效果,vi没有这个效果
- 参见
| 正则表达式 |
1、量词
vim Perl 意义
* * 0个或多个(匹配优先)
\+ + 1个或多个(匹配优先)
\?或\= ? 0个或1个(匹配优先)
\{n,m} {n,m} n个到m个(匹配优先)
\{n,} {n,} 最少n个(匹配优先)
\{,m} {,m} 最多m个(匹配优先)
\{n} {n} 恰好n个
\{-n,m} {n,m}? n个到m个(忽略优先)
\{-} *? 0个或多个(忽略优先)
\{-1,} +? 1个或多个(忽略优先)
\{-,1} ?? 0个或1个(忽略优先)
2、环视、固化分组、分组不捕获
vim Perl 意义
\@= (?= 顺序环视
\@! (?! 顺序否定环视
\@<= (?<= 逆序环视
\@<! (?<! 逆序否定环视
\@> (?> 固化分组
\%(atom\) (?: 非捕获型括号
- 参见
| 行号 |
1、显示行号 :set nu 全写 :set number 2、取消行号 :set nonu 全写 :set nonumber
- 参见
| 转移 |
1、0转到行头 2、$转到行尾 3、:15 转到第15行
- 参见
Copyright (c) 2015~2016, Andy Niu @All rights reserved. By Andy Niu Edit.