vim替换的一点心得

2012年6月14日 发表评论 阅读评论

    如果有人问我最好的文字编缉工具是什么,我会很肯定的告诉他是vim 。最初使用vim的时候可能会感到无所适从,不过一但用习惯了,你会发现其他文字工具在其面前真的不值一提。下面就针对其替换功能在实际应用中的作用,发表下自己的一点心得。

例1、配置DHCP服务

在windows中我们能过ipconfig -all命令查到的ip和mac情况如下:

 Physical Address. . . . . . . . . : 00-E0-4C-75-DF-2F
 Dhcp Enabled. . . . . . . . . . . : Yes
 Autoconfiguration Enabled . . . . : Yes
 IP Address. . . . . . . . . . . . : 192.168.20.16
 Subnet Mask . . . . . . . . . . . : 255.255.255.0
 Default Gateway . . . . . . . . . : 192.168.20.254

    而我在配置linux服务器上配置DHCP服务时,mac地址之间是“:”隔开的。不过可以你在写配置文件时,可能并未注意到这个问题。当写完以后发现时,再进行手动去修改,这绝对是个麻烦的问题。诚然,我们可以在window下的编辑工具去修改。不过编辑工具的替换要把其他不该换的“-”也换成“:”。而vim就能很好的避免这个问题。

host zhichi2 {
next-server marvin.redhat.com;
hardware ethernet 1C-6F-65-EF-40-BD;
fixed-address 192.168.30.16;
}
host zhichi3 {
next-server marvin.redhat.com;
hardware ethernet 50-E5-49-66-55-41;
fixed-address 192.168.30.17;
}
host zhichi4 {
next-server marvin.redhat.com;
hardware ethernet 50-e5-12-20-fd-f7;
fixed-address 192.168.30.18;
}
host zhichi5 {
next-server marvin.redhat.com;
hardware ethernet F0-DE-D1-4B-B6-4B;
fixed-address 192.168.30.19;
}

上面是我从linux的dhcp配置文件里取出来的一部分。我如果想把上面的mac地址部分里的“-”换成“:”,只需要用vim编缉该文件。在命令模式下输入:

g/hardware/s/-/:/g

就可以把所有hardware行的“-”换成“:”,而fixed行的“-”和next行的“-”确不会受到影响。如果想只换hardware行里的第一次出现的“-”,只需要把上面的最后的个g去掉就行了。即:

g/hardware/s/-/:/

例2:批量注释配置文件

还是拿上面的配置文件说事吧。为了便于查看,我利用vim的“:set nu”功能为每一行都标上了行号。这次的需求是我想把最后一个配置给注释掉。即第16行到最后一行的内容。

  1 host zhichi2 {
  2 next-server marvin.redhat.com;
  3 hardware ethernet 1C:6F:65:D1:40:BD;
  4 fixed-address 192.168.30.16;
  5 }
  6 host zhichi3 {
  7 next-server marvin.redhat.com;
  8 hardware ethernet 50:E5:49:31:55:41;
  9 fixed-address 192.168.30.17;
 10 }
 11 host zhichi4 {
 12 next-server marvin.redhat.com;
 13 hardware ethernet 50:e5:49:20:fd:f7;
 14 fixed-address 192.168.30.18;
 15 }
 16 host zhichi5 {
 17 next-server marvin.redhat.com;
 18 hardware ethernet F0:DE:F1:4B:B6:4B;
 19 fixed-address 192.168.30.19;
 20 }

 而这次我只需在vim的命令模式下输入:

16,$ s/^/#/

上面的“$”代表的是最后一行,如果后面还有内容,可以将其换为20,这样就会把16行到20行的前面全加#号。如果想取消上面的注释也很简单。反其道而行之就行了。

16,$ s/^#//

 




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: Linux/unix/mac 标签:
  1. 本文目前尚无任何评论.