`

VIM中去除Windows文本中的^M符号,多种方法

阅读更多

总结起来就是:

1 :%s/\r/ (推荐)

2 :%s/\r//g

3 :%s/[ctrl-v][ctrl-m]//g(中间CTRL部分不是输入,而是按键,显示在屏幕上是:%s/^M//g

4 还有一个解决方法就是对这类文本进行转换。vim内部就可以做这件事情。首先打开文本,然后set fileformat=unix;再重新保存该文件覆盖原文件就可以去除:^M了

5 dos2unix:http://hi.baidu.com/chengpeng21186/blog/item/573c86fa18834b9c58ee90ff.html

6 sed命令:http://www.51cto.com/art/200711/60604.htm

原文地址:http://www.vim.org/tips/tip.php?tip_id=26

如果你经常编辑不同系统环境下的文件,那么你可能在打开文件时经常发现 ^M 这样的符号.
比如
:

------------------------------------------------------------------
import java.util.Hashtable; ^M
import java.util.Properties; ^Mimport java.io.IOException;
import org.xml.sax.AttributeList; ^M
import org.xml.sax.HandlerBase; ^Mimport org.xml.sax.SAXException;

/**^M
* XMLHandler: This class parses the elements contained^M
* within a XML message and builds a Hashtable^M

[snip]
------------------------------------------------------------------

注意有些程序在插入换行符时所进行的操作并不是一致的,有的时候用一个carrage回车键加一个^M作为换行符,而有些时候仅有^M而没有carrage回车键(从而两行变成一行)。我们使用两个步骤解决这个问题:

1. 去掉所有多余的^M:

:%s/^M$//g

注意命令中的^M 是通过键入"CTRL-V CTRL-M"生成的!
该命令的意思是 “去掉所有行末的^M”

2. 处理仅有^M而没有carrage回车键的情况:

:%s/^M/ /g

同样注意命令中的^M 是通过键入"CTRL-V CTRL-M"生成的!
该命令的意思是 “将仅有^M而没有换行符的地方替换成换行符”。

好了,你将看到一个清爽的文件。如果你经常使用这些命令,你可以将它们映射成快捷键。

输入:help ffs以获取跟多的关于文件格式的信息。

在此感谢jonathan merz, douglas potts, and benji fisher

分享到:
评论

相关推荐

    Linux下去掉^M的四种方法

    ^M字符实际上代表了一个回车(CR,Carriage Return)符号,这在Windows系统中用于换行,而在Linux中,换行是由LF(Line Feed)字符完成的。因此,当这些文件在Linux下显示时,^M字符可能会引起混乱或者导致脚本执行...

    vimrc带详细说明配置文件and插件包

    windows下的Gvim7.2的配置文件 增加了"文件浏览"和Taglist等一系列插件. 插件也在压缩包内 "本配置文件包括如下内容: "设定窗口打开位置 winpos 300 60 "设定窗口起始大小 set lines=50 columns=118 " 设定默认解码...

    win-kbd-usint-nodead:Windows的美国国际键盘布局,无死键(仅适用于AltGr)

    美国国际键盘布局是美国QWERTY布局的一种变体,它可以方便地输入多种语言的特殊字符,如法语、西班牙语和德语中的重音符号。 接下来,我们要了解"AltGr"键。AltGr键(通常位于右Ctrl键的旁边)是“Alternate ...

    linux-101-hacks

    - **VIM基本入门**:VIM是Linux系统中常用的文本编辑器,具有强大的功能。 ### 第三章 - SSH技巧 - **调试ssh客户端**:介绍如何调试ssh连接问题。 - **SSH逃逸字符**:用于结束SSH会话。 - **显示SSH会话状态**:...

    linux-101-hacks.pdf

    这在数据分析中特别有用,可以快速去除重复数据。 #### Hack-16 Cut命令 `cut` 命令用于从每行文本中截取字段或字符。这对于处理表格数据非常有用,可以从文件中抽取特定列的信息。 #### Hack-17 Stat命令 `stat` ...

    linuxvi替换命令借鉴.pdf

    - `:%s/r//g` 删除 DOS 方式的回车 `^M`。 - `:%s= *$==` 删除行尾空白。 - `:%s/^(.*)n1/1$/` 删除重复行。 - `:%s/^.{-}pdf/new.pdf/` 删除第一个 `pdf`。 - `:%s/<!--_.{-}-->//` 删除多行注释。 - `:g/s*^...

    实验报告1

    1. 迁移五字班标准库:小组将已有的标准库移植到xv6上,遇到文件大小超出限制的问题,通过去掉二进制中的符号以减小文件大小,确保用户态程序可正常运行。 2. 迁移newlib:小组选择newlib作为目标标准库,因为其文档...

    Linux(shell/bash)的脚本教程

    1. **创建脚本文件**:使用文本编辑器(如vim、nano等)创建一个新的文件,例如命名为`script.sh`。 2. **添加Shebang行**:在文件的第一行加入`#!/bin/bash`或`#!/bin/sh`。这被称为Shebang行,用于指定执行此脚本...

    Linux101 Hacks 2rd

    除了《Linux101 Hacks 2rd》,The Geek Stuff还出版了一系列与技术相关的电子书籍,涵盖了诸如Bash脚本编写、Sed和Awk文本处理、Nagios Core监控系统以及Vim编辑器等方面的深入讲解。 ### Chapter 1: Powerful CD ...

    redhat linux关键命令

    `uniq`命令用于去除文件中的重复行,适用于清理和整理文本数据。 ### 32. vi/vim - 高级文本编辑器 `vi`(或其增强版`vim`)是一个功能强大的文本编辑器,支持复杂的文本编辑和脚本编写,是Linux管理员的必备工具...

    Unix命令行程序和内建指令

    文本编辑方面,Unix提供了多种工具: 1. **awk**:处理文本文件的语言。 2. **comm**:比较两个排序好的文件。 3. **cut**:从每行提取字符或字段。 4. **ed**:原始的行编辑器。 5. **ex**:可视化的行编辑器,Vim...

    Linux必学的60个命令

    13. **vi/vim**:文本编辑器,用于创建和编辑文件。 14. **grep**:搜索文件中的特定字符串或模式。 15. **find**:根据条件查找文件,如 `find . -name "myfile"` 在当前目录下找名为myfile的文件。 16. **which...

    linux学习文档

    17. **vi/vim**:强大的文本编辑器,常用于编辑配置文件。 18. **nano**:更友好的文本编辑器,适合初学者。 19. **sudo**:以超级用户权限运行命令,通常用于安装软件或修改系统设置。 20. **apt-get**(Debian/...

    linuxquickref

    - `emacs`和`vim`是两种流行的文本编辑器,分别提供图形界面和命令行界面的编辑方式。 - `umask`设置默认的文件权限掩码,控制新创建文件的权限。 - `soffice`和`abiword`用于编辑Microsoft Office文档,而`...

    linux 命令典藏版.docx

    - `vi`: 强大的文本编辑器,初学者可以先尝试使用更友好的`nano`或`vim -i`。 - `who`: 显示当前登录到系统的用户信息。 2. **chmod** - 改变文件或目录的存取模式 - `chmod`命令允许用户修改文件的权限,例如...

    linux常用命令总结文档

    - `mode`可以是数字或者符号组合,如`u+rwx`、`g-w`等。 - **示例**: - `chmod u+x filename`: 给文件所有者添加执行权限。 - `chmod g+rw filename`: 给文件所属组添加读写权限。 - `chmod o-r filename`: ...

    常用linux命令及服务器配置大全 工作中收集的linux常用命令。

    **用途**:`awk` 是一种强大的文本处理工具,用于查找数据中的模式并对这些数据进行处理。 **示例**: ```bash awk '{print $1}' filename ``` 此命令将打印文件的每一行的第一个字段。 --- #### 五、batch:对 ...

Global site tag (gtag.js) - Google Analytics