Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3396492
  • 博文数量: 631
  • 博客积分: 10716
  • 博客等级: 上将
  • 技术积分: 8397
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-01 22:35
文章分类

全部博文(631)

文章存档

2020年(2)

2019年(22)

2018年(4)

2017年(37)

2016年(22)

2015年(1)

2013年(12)

2012年(20)

2011年(19)

2010年(20)

2009年(282)

2008年(190)

分类: LINUX

2011-01-14 09:03:18

Vim,即Vi IMproved,是一个Vi的增强版,Linux下最为常用的编辑器之一。然而,它强大的功能是它不仅仅是一个编辑器。
 
    花点时间学习一下Vim的使用,可以事半功倍。随着使用,就会发现Vim的强大。
 
    Vim高级编辑要用到正则表达式的各种技巧,先简单介绍基本的原字符集及其含义:
 
^ --只匹配行首
$ --只匹配行尾
* --匹配0个或多个单字符
[] --匹配[]内字符,可以是一个单字符,也可以是字符序列,可是用-表示[]内字符序列范围,
     如用[1-5]表示[12345]。
. --匹配任意单字符
^$ --匹配空行
 
    在vi中也可以使用这些正则表达式。它也有它自己的语法格式,不过匹配方式类似,比较一下很容易看出。下面给出几个常用的操作:
 
1、把文件内容反转,第一行成为最后一行,第二行成为倒数第二行,以此类推 :g/^/m0
2、在整个文件中替换特定字符串 :%s/原文件的内容/替换成的内容/g
   例如:去掉文件中的"^M"等控制符 :1,$s/^M//g (或者:%s/^M//g)
3、在每一行文本前加同样的字符 :%s/^/要加的内容/g
4、在每一行文本后加同样的字符 :%s/$/要加的内容/g
5、在第2行行首加入内容 :2s/^/要加的内容/g
6、在第1,2行行首加入内容 :1,2s/^/要加的内容/g
7、删除第1,2行行首的内容 :1,2s/^要删除的内容/g
8、删除第2行行尾的内容 :2s/要删除的内容$/g
9、删除第5行包含的字符串 :5s/要删除的字符串/g
10、删除从当前行开始到最后一行的所有内容 :[dot][comma]$d【注意,冒号后面紧跟“点”(表示当前行),然后跟一个“逗号”,加“$”(表示最后一行),d表示删除。】
 
    这些技巧要总结规律性,而且要在每天操作时使用,熟悉得成为手指的本能。只是看是不可能学会的。正如林锐博士所言,学了不一定懂了,懂了不一定会用。勤加练习!
 

 
 
1、基本操作
 
    dd  删除当前行
    ndd 删除当前行以下n行(包括当前行在内)
    p   粘贴
    yy  复制当前行
    nyy 复制当前行以下n行(包括当前行在内)
 
    dd和ndd也可以认为是“剪切”。
 
2、技巧
 
    :n,m co k  复制n到m行,粘贴到k行处(从下一行开始)
    :n,m m k   剪切n到m行,粘贴到k行处(从下一行开始)
    :n,m d     删除n到m行
 
    注意的是,m必须大于n,而且m、n、k都在正文行号之内。比如说,如果文件有10行,而你的操作中出现了11,就会出现错误。m可以用特殊符号$,代表到结尾处。
 
    如果要处理的文本比较多,那么可以采用标号的方法。具体如下:
 
    光标移到起始行,输入ma
    光标移到结束行,输入mb
    光标移到粘贴行,输入mc
 
    然后 :'a,'b co 'c,就实现了复制粘贴。如果把co改为m,就实现了剪切粘贴。
阅读(2922) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~