%s/aaa/bbb/g
.,$s/aaa/bbb/g,$s/aaa/bbb/g
1,$s/aaa/bbb/g
s
替换
%
全文
$
最后一行
1
第一行
g
global? 就是在前面制定的行中替换所有匹配的字符串,如果不加这个就只匹配每一行中的第一个,此处还可以用c
p
c
每次替换前会确认
p
不知道。。。
参考:https://www.cnblogs.com/fakis/archive/2010/07/17/1976595.html
另外,有时候也会出现:g
这种命令,关于g
和s
的区别:
https://stackoverflow.com/questions/25684559/what-is-the-difference-between-g-and-s-commands-in-vim
总结一下,就是g是行选择器(所以d可以和g一起用:g/xxx/d
,删除字符串出现的行),s相当于一个函数
所以可以有这写写法
:g/foo/s/bar/blah/g
一般上面的命令中foo 和 bar 会是相同的,也就是
:g/foo/s/foo/blah/g
所以会有
:g//s/foo/blah/g
或者
:g/boo/s//blah/g
最后,换行符的匹配和替换
:%s/,/,\r/g #逗号处增加换行符
:%s/,\n/,/g #删除换行符
8.sudo 会重置环境变量,并且/etc/bashrc中export 的环境变量也会失效
原因:
sudo -l # env_reset
方法一:
visudo # env_reset -> !env_reset
# 或者直接改文件
vim /etc/sudoers #此文件root默认也没有写权限,所有不建议吧
通过visudo命令,向sudoers文件中env_reset下增加一行:
Defaults env_keep="PATH PYTHONPATH LD_LIBRARY_PATH CAFFE_ROOT"