在 Vim 中,^@ 表示 ASCII 码中的 NULL 字符,编码为 0x00,占用一个字节。

删除方法

方法1,采用 <CTRL-V><CTRL-J> 或 <CTRL-2> 或 <CTRL-SHIFT-2> 按键输入在 Vim 中输入 NULL 字符(显示为 ^@),然后将所有的 NULL 字符替换为空字符 ''。具体命令如下:

:%s/<CTRL-V><CTRL-J>//g
:%s/<CTRL->//g
:%s/<CTRL-SHIFT->//g

注,<CTRL-V> 表示按住<CTRL>键不放,然后按下字符 V 键;<CTRL-SHIFT-2> 表示按住 <CTRL> 键和 <SHIFT> 键不放,然后按下字符 2 键。

注意,<CTRL-V><CTRL-J>组合按键比较通用,按键 <CTRL-2> 或 <CTRL-SHIFT-2> 在某些电脑上可能失效。如果按键方式全部无效,可以采用方法 2。

方法2,在 Vim 替换文本命令时,采用 NULL 字符的 ASCII 编码表示。具体命令如下:

:%s/\%x00//g

也可以采用 <CTRL-V> 按键,然后在 Vim 中输入 NULL 字符的 3 位八进制 ASCII  编码,即 000。具体命令如下:

:%s/<CTRL-V>//g

方法3,采用 Linux 命令行工具 tr 。tr 工具用于转换、压缩或删除来自标准输入的字符,并写到标准输出。在 Vim 中的具体命令如下:

:%!tr -d '\000'

注, -d 为 --delete 的缩写,表示删除字符 '\000' 。

如果需要处理文件为 input.txt ,可在 Linux Bash 命令行中,使用如下命令:

tr -d '\000' < input.txt > output.txt

表示从文件 input.txt 读入文本,删除 NULL 字符(\000)后,输出到文件 output.txt 。

参考资料

1] ^@ Symbol in vim. https://stackoverflow.com/questions/9124755/symbol-in-vim

2] How to remove this symbol with vim. https://superuser.com/questions/75130/how-to-remove-this-symbol-with-vim

在 Vim 中,删除 ^@ 符号的几种方法的更多相关文章

  1. ArcGIS Engine中删除要素的几种方法总结

    转自原文 ArcGIS Engine中删除要素的几种方法总结 /// <summary> /// 通过IFeature.Delete方法删除要素 /// </summary> ...

  2. PHP从数组中删除元素的四种方法实例

    PHP从数组中删除元素的四种方法实例 一.总结 一句话总结:unset(),array_splice(),array_diff(),array_diff_key() 二.PHP从数组中删除元素的四种方 ...

  3. MySQL中删除数据的两种方法

    转自:http://blog.csdn.net/apache6/article/details/2778878 1. 在MySQL中有两种方法可以删除数据: 一种是delete语句,另一种是trunc ...

  4. NHibernate 中删除数据的几种方法

    今天下午有人在QQ群上问在NHibernate上如何根据条件删除多条数据,于是我自己就写了些测试代码,并总结了一下NHibernate中删除数据的方式,做个备忘.不过不能保证囊括所有的方式,如果还有别 ...

  5. 总结NHibernate 中删除数据的几种方法

    今天下午有人在QQ群上问在NHibernate上如何根据条件删除多条数据,于是我自己就写了些测试代码,并总结了一下NHibernate中删除数据的方式,做个备忘.不过不能保证囊括所有的方式,如果还有别 ...

  6. python中List添加、删除元素的几种方法

    一.python中List添加元素的几种方法 List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改操作).在Pytho ...

  7. JavaScript从数组中删除指定值元素的方法

    本文实例讲述了JavaScript从数组中删除指定值元素的方法.分享给大家供大家参考.具体分析如下: 下面的代码使用了两种方式删除数组的元素,第一种定义一个单独的函数,第二种为Array对象定义了一个 ...

  8. CSS中隐藏内容的3种方法及属性值

    CSS中隐藏内容的3种方法及属性值 (2011-02-11 13:33:59)   在制作网页时,隐藏内容也是一种比较常用的手法,它的作用一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出 ...

  9. js中数组去重的几种方法

    js中数组去重的几种方法         1.遍历数组,一一比较,比较到相同的就删除后面的                 function unique(arr){                 ...

  10. CSS中隐藏内容的3种方法

    CSS中隐藏内容的3种方法 一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出层.隐藏滚动条.清除错位和浮动等. 1.使用display:none来隐藏所有内容 display:none可 ...

随机推荐

  1. spring学习2

    使用注解配置spring 步骤: 1. 导包4(core/bean/context/spel)+1(logging)+spring-aop包(新版spring需要导入这个包) 2. 为主配置文件引入新 ...

  2. q1095

    一,写题 1,我这个递归的错误我挺想搞出来的 int fa(int x) { ) return cnt; ==) { x=x/; cout<<"测试1:"<< ...

  3. C# 不包含 AsEnumerable 的定义

    引用 System.Data.DataSetExtensions 引用右键 ->添加引用 ->搜索 DataSetExtensions ->添加 注意版本

  4. 关于DML的一些使用

    DML是一种非常简单的标记语言,它帮助基于现有命令的输出发现和执行新命令.许多WinDbg命令(以及扩展命令)都支持DML.例如,下面是lm D命令,它显示DML输出: 在上面的命令输出中,当我单击“ ...

  5. ABP 网站发布

    报错1:HTTP Error 503. The service is unavailable. 解决:IIS->应用程序池->高级设置->进程模型->标识.将内置账户更改为Ne ...

  6. Sql Server怎样设置sa用户登录

    首先,我门打开数据库管理工具,用windows方式登录,windows只能本机登录,这样远程的客户端就登录不了,我们目前就是为了开启sa登录,使远程客户端也能访问数据库,看下图,windows方式登录 ...

  7. 应用JWT进行用户认证及Token的刷新

    本文将通过实际的例子来演示如何在ASP.NET Core中应用JWT进行用户认证以及Token的刷新方案(ASP.NET Core 系列目录) 一.什么是JWT? JWT(json web token ...

  8. 20165230田坤烨网络对抗免考报告_基于WIN10的渗透攻击

    目录 简单信息收集 主机发现 ping nmap 端口扫描 nmap OS及服务版本探测 nmap -sV 绕过防火墙尝试 诱饵 随机数据长度 随机顺序扫描目标 MAC地址欺骗 实现win10的渗透攻 ...

  9. React的状态管理工具

    Mobx-React : 当前最适合React的状态管理工具   MobX 简单.可扩展的状态管理        MobX 是由 Mendix.Coinbase.Facebook 开源和众多个人赞助商 ...

  10. java8新特性七-Date Time API

    Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与时间的处理. 在旧版的 Java 中,日期时间 API 存在诸多问题,其中有: 非线程安全 − java.ut ...