[实践OK]在VI中删除行尾的换行符,vim如何删除所有包含某个字符串的所在行?

jackxiang 2009-11-9 11:32 | |
在vi中,如果要删除行尾的换行符,可以用如下方法:

第一种情况:只删除单行
如有文件如下:

[fanzf@SWserver ~/tmp]$ cat names.tmp
101     Nate    H.
102     John    M.
104     Cassy   T.
106     Mary    L.
107     Isaac   C.

要将第一行和第二行合并,在命令行模式下可将光标移动到第一行,输入J(john,大写)即可;另外一种办法也是在命令行模式下,光标也移动到第一行,输入命令  :s/\n//
运行效果如下
101     Nate    H.  102 John    M.
104     Cassy   T.
106     Mary    L.
107     Isaac   C.
~

第二种情况:删除所有换行符:


\s:空格
+: +表示匹配1-无穷
$:表行行尾
=================================================
在命令行模式下,光标也移动到第一行,输入命令  :%s/\n//g
效果如下
101     Nate    H.102   John    M.g104  Cassy   T.g106  Mary    L.g107  Isaac   C.g

在以上命令中,

s 是替换,
/ 是间隔符,
\n 是换行负,即要替换的原串,  
\n后面的//,是要指替换成的串,在这里表示无
两条删除命令的区别在于前面有无 % ,  有%则在全文中替换
后面的g,是在整行中替换,由于每行最多只有一个换行,所以g在这里没实际意义

vim如何删除所有包含某个字符串的所在行?譬如删除掉所有包含了redis的行:


作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/2182/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2017-12-15 11:55
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]