查找替换之Vim中使用技巧

简介:

查找替换在Vim中的用法

   使用方法:

      在末行模式下输入:

           地址定界s/模式/替换成的内容/后加一些修饰符

                注:替换为的内容不能使用模式

                        修饰符:

g

global  全局替换

i      ignorecase 在查找时不区分大小写


例1:首先打开man.conf文件添加what doonhello what将中的what全部替换成down

       .s/what/down/g

例2、在例1的基础上将文中所有以d开头中间跟任意两个字符以n结尾的单词全部替换成come

      %s/\<d[[:alpha:]]\{2\}n\>/come/g

例3、将文中所有/bin/cat全部替换成/tmp/a.txt

        %s/\bin\/cat/\/tmp\/a.txt/g

注:首先将文中的/进行转义,而由于.在替换成的内容中不用实行转义


经过例3之后是不是感觉看上去很不爽啊,而事实上查找替换中的分隔符是可以换成其他符号(不常用的其他符号)的,比如:@,&,#

        如%s@/tmp/a.txt@/bin/cat@g

例4、在例1的基础上将文中所有以d开头中间跟任意两个字符以n结尾的单词全部替换成D中间不变N(格式:down  —> DowN

       %s@\<d\([[:alpha:]]\{2\}\)n\>@D\1N@g

例5、查找替换文中不论大小写的字符换成字符ice

   格式如下:dev —>device    DEV --> DEVice   Dev -->Device

        %s@\([dD][eE][vV]\)@\1ice@g

注:只要我们查找替换的是保留前面的所有内容的可以不用使用分组使用&符号即可

那么这题就可以写成:%s@\[dD][eE][vV]\@&ice@g


拓展演练:(没有附加效果图,答案无误)

1、删除/etc/inittab文件中开头的#号;

        %s@^#@@


2、删除/etc/grub.conf文件中行首的空白符;

        %s@^[[:space:]]\{1,\}@@


3、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5

       %s@id:3:@id:5:@g


4、删除某文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符;

       %s@^#[[:space:]]\{1,\}@@


5、为指定范围内的行的行首添加#

      1,10s@^@#@g


6、为空白字符开头的行的行首加上#

      %s@^[[:space:]]@#&@



本文转自 z永 51CTO博客,原文链接:http://blog.51cto.com/pangge/1251564



相关文章
|
Unix 程序员 Linux
VIM 简单使用1
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。 连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
268 0
VIM 简单使用1
|
Java Linux 开发工具
Vim 简单使用指南
Vim 简单使用指南
323 0
Vim 简单使用指南
|
开发工具
vim使用技巧总结
vim使用技巧总结
|
人工智能 数据可视化 开发工具
|
SQL Java Shell
基于任务的vim使用手册-基础篇
基于任务的vim使用手册
1155 0
|
开发工具 数据可视化 Shell
Vim的使用技巧---世上最好用的编辑器
愿把每一件事做好 vim是一个模式化的编辑器,它一共有三种模式,编辑模式(命令模式)、输入模式、末行模式。 三种模式之间的切换如下图: vim.png 从图中可以看出,可以在编辑模式下可以随意切换到输入模式和末行模式,而输入模式和末行模式只能切换回编辑模式(命令模式)。
1160 0
|
开发工具
vim 个人使用笔记
首先链接个网址,以后有什么快捷键没有使用过再查询吧 在vim中快速复制粘贴多行 用vim写代码时,经常遇到这样的场景,复制多行,然后粘贴。
876 0
|
开发工具 虚拟化 Shell