Vim Tips ----------- 持续更新
技巧一:如何输入多行数据
命令模式中先按数组如20,然后按a(A/i/I/o/O等)进入到插入模式,然后输入内容,输入完后按Esc键就可以完成多行输入了(将你输入的内容复制了前面安装的数字那么多份)
技巧二:查看man帮助
光标定位到需要man的位置,然后安shift+k 即大写的K
技巧三:编码时常用命令
ci[ ***一对 [] 中的所有字符并进入插入模式
ci( ***一对 () 中的所有字符并进入插入模式
ci< ***一对 <> 中的所有字符并进入插入模式
ci{ ***一对 {} 中的所有字符并进入插入模式
cit ***一对 HTML/XML 的标签内部的所有字符并进入插入模式
ci" ci' ci` ***一对引号字符 (" 或 ' 或 `) 中所有字符并进入插入模式
vi[ 选择一对 [] 中的所有字符
vi( 选择一对 () 中的所有字符
vi< 选择一对 <> 中的所有字符
vi{ 选择一对 {} 中的所有字符
vit 选择一对 HTML/XML 的标签内部的所有字符
vi" vi' vi` 选择一对引号字符 (" 或 ' 或 `) 中所有字符
技巧四:Vim正则表达式查找替换
首先大家要明白vim正则里面的几个特殊含义:
^ 代表行首
$ 代表行尾
\d 代表数字
\D 代表非数字
[x,y,z]:代表各种条件选择
好的,那我们就出几个常用的题目做一下来试一下吧:
1.将以数字开头的行***
%s/^\d.*$//igc :把这行置成空
%s/^\d.*$\n//igc :把这行直接删掉,包括换行符一起删掉,(注意是\n,而不是\r\n,因为这是针对linux平台,)下一行会到这一行的位置
2.将数字3或者4或者A开头的行***
%s/^[3,4,A].*$//igc :把这行设置成空
3.
1 IP 202.114.1.1.23444
2 IP 202.114.1.2.wokao
3 IP 202.114.1.3.woai23444
要求最后变为
202.114.1.1
202.114.1.2
202.114.1.3
按照顺序执行如下即可:
%s/\d.*IP //igc
%s/\.\d*$//igc
%s/\.\D.*$//igc
1.***行尾的空白字符(包括空格和tab)
:%s/\s\+$//
2.***空白行
:g/^[ ,\t]*$/d
3.压缩空白行(即两行变成一行)
:%s/^\n\+/\r/
4.压缩重复行(即重复的行变成一行,只能两行两行的压缩)
%s/^\(.*\)\n\1$/\1/
从而可以得知,匹配重复2行的命令是:
/^\(.*\)\n\1
重复3行的命令是:
/^\(.*\)\n\1\n\1
5.***行尾的^M字符(dos换行符)
%s/\r//g
一.vim中常用的正则表示的元
$ 匹配一行的结束
^ 匹配一行的开始
\< 匹配一个单词的开始
\> 匹配一个单词的结束
* 匹配0或多次
\+ 匹配1或多次
\= 匹配0或1次
\a 匹配一个字符
\d 匹配任一数字
\u 匹配任一大写字母
[] 匹配范围,如t[abcd]s 匹配tas tbs tcs tds
\{} 重复次数,如a\{3,5} 匹配3~5个a
\( \) 定义重复组,如a\(xy\)b 匹配ab axyb axyxyb axyxyxyb …
\| 或,如:for\|bar 表示匹配for或者bar
\%20c 匹配第20列
\%20l 匹配第20行
二.值得注意的几个地方
(1) 有些符号要用\转义,比如\+表示重复一次或以上,其他的还有一些,:h pattern查看
(2) 非贪婪匹配用\{-}, 如.*\{-}匹配尽量短的任意字符
(3) \i匹配标识符字符[a-zA-Z0-9_],其大写形式表示不包括数字在内的标识符[a-zA-Z_],这两个不是互补的意思,类似的还有\k\f\p,但是\s匹配空白字符,\S匹配非空白字符,这两个是互补的
技巧五:大小写转换
vim中大小写转化的命令是:gu或者gU,形象一点的解释就是小u意味着转为小写,大U意味着转为大写。接下来说明对这两个命令的限定(限定操作的行,字母,单词)等等。
1.整篇文章大写转化为小写
打开文件后,无须进入命令行模式。
键入:ggguG
解释一下:ggguG分作三段gg gu G
gg=光标到文件第一个字符
gu=把选定范围全部小写
G=到文件结束
2.整篇文章小写转化为大写
打开文件后,无须进入命令行模式。
键入:gggUG
解释一下:gggUG分作三段gg gU G
gg=光标到文件第一个字符
gU=把选定范围全部大写
G=到文件结束
3、只转化某个单词
guw 、gue、gUw、gUe
这样,光标后面的单词便会进行大小写转换
想转换5个单词的命令如下:
gu5w、gu5e、gU5w、gU5e
4、转换几行的大小写
将光标定位到想转换的行上,键入:1gU
从光标所在行往下一行都进行小写到大写的转换
10gU,则进行11行小写到大写的转换
以此类推,就出现其他的大小写转换命令
gU0 :从光标所在位置到行首,都变为大写
gU$ :从光标所在位置到行尾,都变为大写
gUG :从光标所在位置到文章最后一个字符,都变为大写
gU1G :从光标所在位置到文章第一个字符,都变为大写
5、大小写之间切换
~:单个字符大小写切换
g~~:整行的大小写切换
技巧六:insert 模式下的 自动补全功能
1.关键字补全,按键是:
FORWARD: <C-X><C-N>
BACKWARD: <C-X><C-P>
2.整行补全,按键是:
<C-X><C-L>
3.文件名补全,按键是:
<C-X><C-F>
4.字典补全,按键是:
<C-X><C-K>
5.全能补全,按键是:
<C-X><C-O>
技巧七:代码缩进功能
>>: 右缩进
<<: 左缩进
技巧八:重复输入N次
n-i-输入-Esc:其中n是数字(重复的次数),i 进入插入模式 , 然后输入内容,按下esc键退出输入模式后就会自动将输入的内容重复n次
转载于:https://blog.51cto.com/wuzhaoquan/1423287
上一篇: Python Web 框架-FLASK day02
下一篇: JQuery中的event