之前的代码库里面都是python2的,现在用的是python3.然后就得一个一个改。所有就在vim下面自己尝试了一把,可以修改。这里同时对vim的正则做一个整理。
:set magic
:1,$s/print\ \(.*\)/print\(\1\)/g
上述的执行完成就可以把
print "hello","world"
修改为
print("hello", "world")
vim正则有三种,一种是不加magic的,这种除了$ ^之外都需要加反斜杠。
而你用了magic之后 .*$^就不需要加了。
还有一个
\v very magic的方法,任何元字符都不用加反斜杠\v
\V 则是任何元字符都必须加反斜杠
/\v(a.c){3}$ # 查找行尾的abcaccabc
/\m(a.c){3}$ # 查找行尾的(a,c){3}
/\V(a.c){3}$ # 查找任意位置的(a,c){3}$
set magic 也可以直接使用\m
\< 匹配单词词首
\> 匹配单词词尾
:g/^\s*$/d 删除只有空白的行
:s/\(\w\+\)\s\+\(\w\+\)/\2\t\1 将 data1 data2 修改为 data2 data1
:%s/\(\w\+\), \(\w\+\)/\2 \1/ 将 Doe, John 修改为 John Doe
:%s/\<id\>/\=line(".") 将各行的 id 字符串替换为行号
:%s/\(^\<\w\+\>\)/\=(line(".")-10) .".". submatch(1) 将每行开头的单词替换为(行号-10).单词的格式,如第11行的word替换成1. word
参考:
https://www.cnblogs.com/penseur/archive/2011/02/25/1964522.html