vim-实际应用

还是那句话,书到用时方恨少!我似乎又明白了一些呢

今天需要将一个文件的每一行的开头都加上几个字符,本来应该是个比较简单的事,一个sed不就搞定了吗,可是。。。。。。我忘了sed咋写的了。

然后我想到了使用vim,因为几乎没啥是vim不能做的啊。当然问题得到了解决,可是我却发现我又忘记了之前学的sed用法。果然知识不学习就会忘,说明我用的并不够多,也不熟悉。

1
sed -i '1,$s/^/joyce' test.txt			#sed写法
1
:%s/^/joyce/g							#vim写法

虽然今天的那个文件没有空行,但是如果有空行咋写呢?要在每一行前加几个字符,但是不能在空行前加?

1
2
3
4
5
6
7
8
9
10
# 我用sed没有成功,可能是方法不对吧,但是用vim还是凑合做到了
gg #到第一行
ctrl+v #块模式
G #选到最后一行
y #复制
shift+i #在行的最开头insert
ctrl+o #insert normal模式,用来执行normal下的p命令
p #粘贴
#前面做的这么多,就是因为替换时会覆盖第一个字符,所有才多复制一个出来
:%s+^\S+joyce+g #这里是找到以字符开头的行(排除空行),并用joyce来替换

sed就做不到了,因为像上面这样替换的时候会将第一个字符覆盖掉。

最好的方法:

使用global去匹配,使用substitute去替换。如果仅仅使用substitute的话,无法做到既匹配又替换

1
:g/./s/^/joyce

现在好多东西需要学啊,python是目前最重要的,我还想学docker,还要继续学vim,然后perl忘得也差不多了,还想学haskell以及go。我咋学的过来啊?