vim替换

Vim替换


substitute命令: :[range]s/from/to/[flags]

from替换成to指定的字符串(from可为正则表达式,to可为空)

range:范围,可以通过 +、-设置相对偏移量 不写 : 默认为光标所在的行 . : 光标所在的行 n : 第n行
$ : 最后一行 ‘a : 标记a所在的行 .+1 : 当前光标所在行的下面一行 $-1 : 倒数第二行
m,n : 第m~n行 1,$ : 第1行到最后一行 1,. : 第1行到当前行 .,$ : 当前行到最后一行
‘a,‘b : 标记a所在的行到标记b所在的行 % : 所有行(%表当前编辑的文件,#表前一次编辑的文件)
?chapter?:向上搜索,找到的第一个chapter(可以是正则表达式)所在的行
/chapter/:向下搜索,找到的第一个chapter(可以是正则表达式)所在的行

flags:标记,可以组合使用 空 : 只对指定范围内的第一个匹配项进行替换 g : 对指定范围内的所有匹配项进行替换 c
: 在替换前请求用户确认 e : 忽略执行过程中的错误

i : 不分大小写

当前行: :s/from/to/ : 将当前行中的第一个from,替换成to,只替换一个 :s/from/to/g :
将当前行中的所有from都替换成to :s/from/to/gc : 将当前行中的所有from都替换成to,每次替换前询问 某一行:
:.s/from/to/g : 在当前行进行替换操作 :ns/from/to/g : 在第n行进行替换操作
:$s/from/to/g : 在最后一行进行替换操作 某些行: :m,ns/from/to/g : 对第m行到第n行的内容进行替换
:1,$s/from/to/g : 对第一行到最后一行的内容进行替换 :1,.s/from/to/g : 对第一行到当前行的内容进行替换
:.,$s/from/to/g : 对当前行到最后一行的内容进行替换 :‘a,‘bs/from/to/g: 对标记a和b之间的行进行替换
所有行:

:%s/from/to/g : 对所有行的内容进行替换

分隔符: :s#from#to# :用#作为分隔符,from和to中可以有‘/‘

:s+from+to+ :用+作为分隔符,from和to中可以有‘/‘

\zs 匹配由此开始; 如/^/s\zsif,会匹配行首的"if",且忽略空白字符\ze
匹配到此为止; 如end\ze(if\|for),会在"endif"或"endfor"中匹配"end" \d
查找任意位数的数字let
为变量赋值 \= 指明后面是一个表达式 | 用来分隔不同的命令; 如g
在匹配后面模式的行中执行指定的命令
例:下面一行把匹配到的"func(8)","func(3)",...替换成"func(0)","func(1)",...

:let n=0 | g/func(\zs\d+)\ze/s//\=n/ | let n+=1

在文本中删除或添加^M: :%s/^M$//g :s/headtail/head^Mtail/ "headtail"中间换行
表达式替换\=: :%s/^/\=line(".")-1 每行首添加行号(line(".")表当前行号,"-1"让它从0行开始)
保存匹配的内容\0(替换为整个匹配的部分),\1,...,\9(替换为"括号中"匹配的部分): :s/a\|b/\0t/g
将当前行的"a"或"b"全换成"at"或"bt"("\|"表"或") :s/([abc])([efg])/\2\1/g 当前行的"af fa
be gc"会改为"fa fa eb gc"

vim替换,布布扣,bubuko.com

时间: 2024-12-20 02:00:31

vim替换的相关文章

Vim 替换命令

一,":substitute"的使用 :substitute 命令可以对一个指定范围的区域执行替换操作,可以简写为:s ,它的通用形式如下: :[range]substitute/from/to/[flags] 该命令是有[range]指定范围中字符串"from"替换为"to"; 例如文本的每一行中第一次出现"linux"替换为"FreeBSD": :%s/linux/FreeBSD/ 注意:这里最后面没有

linux下使用vim替换文件中的^M换行符

在linux下打开windows编辑过的文本,会出现由于换行符不一致而导致的内容格式错乱的问题.最常见的就是出现^M . 我出现的问题是:在windows编辑过的文件,传到linux上后再用vim打开,内容没有换行.也就是所有文件内容都在一行.然后再实际换行的位置多了个^M. 下面的方法是网上搜的.其中dos2unix还有一个相对应的unix2dos 1.使用dos2unix命令.一般的分发版本中都带有这个小工具(如果没有可以根据下面的连接去下载),使用起来很方便: $ dos2unix myf

vim 替换

摘自: vim替换命令 替換(substitute) :[range]s/pattern/string/[c,e,g,i] range 指的是範圍,1,7 指從第一行至第七行,1,$ 指從第一行至最後一行,也就是整篇文章,也可以 % 代表.還記得嗎? % 是目前編輯的文章,# 是前一次編輯的文章. pattern 就是要被替換掉的字串,可以用 regexp 來表示. string 將 pattern 由 string 所取代. c confirm,每次替換前會詢問. e 不顯示 error. g

命令和vim替换

cat 查看文件的内容-n查看文件的行号cat /etc/hosts/ /etc/passwd > all.txt 文件合并cat合并文件,可以统计工作中使用more 查看文件内容f 一页一页的往下查看内容 空格b 一页一页的往上查看内容注意翻到最后一页自动退出less 一页一页的查看文件内容 重要 常用-N显示行号f 一页一页往下b 一页一页的往上/ 搜索文件内容哦n 查找下一个内容N查找上一个内容和vim的快捷相同gg 首行G 尾行 q 退出查看大文件用less查看head 显示文件的的内容

VIM替换命令

在VIM中进行文本替换: 1.  替换当前行中的内容:    :s/from/to/    (s即substitude) :s/from/to/     :  将当前行中的第一个from,替换成to.如果当前行含有多个 from,则只会替换其中的第一个. :s/from/to/g    :  将当前行中的所有from都替换成to. :s/from/to/gc   :  将当前行中的所有from都替换成to,但是每一次替换之前都 会询问请求用户确认此操作. 注意:这里的from和to都可以是任何字

Vim替换查找

##一.字符的替换及撤销(Undo操作)       ###1.替换和撤销(Undo)命令       替换和Undo命令都是针对普通模式下的操作       命令 | 说明   -----|-----   `r`+<待替换字母> | 将游标所在字母替换为指定字母   `R` | 连续替换,直到按下`Esc`   `cc`| 替换整行,即删除游标所在行,并进入插入模式   `cw`| 替换一个单词,即删除一个单词,并进入插入模式   `C`(大写)|替换游标以后至行末   `~` | 反转游标

VIM替换、截取及追加操作

参考: http://blog.csdn.net/love__coder/article/details/6739670 http://blog.csdn.net/love__coder/article/details/7217377 截取生成新文件或追加至已有文件: :21,42w! ./new.txt #将第21-42行生成同路径下的new.txt :43,52w! >>./anotherNew.txt #将第43-52行追加到t同路径下的anotherNew.txt 替换: :s/old

Vim: 替换操作

> 替换命令 >> :s/old/new/        替换当前行第一个 >> :s/old/new/g       替换当前行所有 >> :n1,n2s/old/new/   替换(n1..n2)行之间所有 >> :n1,n2s/old/new/g  替换(n1..n2)行之间所有 >> :%s/old/new/g      替换所有 > 匹配 >> \<old        开头匹配 >> old\

vim替换指令备忘

1.  替换当前行中的内容: :s/from/to/    (s即substitude) :s/from/to/     :  将当前行中的第一个from,替换成to.如果当前行含有多个 from,则只会替换其中的第一个. :s/from/to/g    :  将当前行中的所有from都替换成to. :s/from/to/gc   :  将当前行中的所有from都替换成to,但是每一次替换之前都 会询问请求用户确认此操作. 注意:这里的from和to都可以是任何字符串,其中from还可以是正则表