Chinaunix

标题: vim问题 [打印本页]

作者: ttqiuzhi    时间: 2011-03-09 17:39
标题: vim问题
请问vim打开某文件,显示的是^@是什么字符?
现在想把^@替换成;号之类的列分隔符,请问怎么处理?
开始以为是^@是换行符,发现不是。
:%s/\n/;/g
不成功,未能成功替换成;反而所有的行连成一行了。
请解答
作者: woshizzb    时间: 2011-03-09 17:50
^@的ascii是0x00,linux下换行符是0x0a.

:%s/^@/;/g即可, 注意^@是按 ctrl+@ 输出的, 不要写成两个字符
作者: ttqiuzhi    时间: 2011-03-09 18:02
谢谢回答,通过windows 命令窗口ssh上freebsd,我使用Ctrl+@无法输出^@呀。。。jiong
直接在Windows 里面使用gvim的确可以!谢谢
作者: ttqiuzhi    时间: 2011-03-09 18:02
另外请问批量用sed替换^@怎么操作?
作者: woshizzb    时间: 2011-03-09 18:54
回复 3# ttqiuzhi


     我的ssh没有这个问题, 请确认你是不是在vim的命令模式下做的这个操作。

   要产生^@ 步骤如下:

   1.进入vim的插入模式
   1. ctrl + v
     2. 松v, 按@
作者: ttqiuzhi    时间: 2011-03-10 08:32
在windows xp 使用ssh到freebsd下操作,确认是在vim的insert模式下,使用ctrl+@无法输出^@。我的版本是freebsd 8.1 vim 7.2.411。
直接使用gvim
%s/CTRL+@/;/g
可以正常替换掉^@


想请问一下使用sed能如何表示^@?

谢谢
作者: ttqiuzhi    时间: 2011-03-10 09:07
sed 替换^@知道了。谢谢




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2