Andy Niu �����ĵ�

Andy Niu

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.