我一直在。vimrc中得到^M字符,它破坏了我的 配置。
当前回答
如果您没有故意指定不同的文件格式(例如,对于Windows文件,:e++ ff=unix),很可能目标文件的eol是混合的。
例如,如果一个文件有一些行以<CR><NL>结尾,而其他行以 <NL>结尾,文件格式被Vim读取时自动设置为unix, ^M (<CR>)将出现。 在这种情况下,文件格式(注意:有一个额外的s)发挥作用。详情见:help ffs。
其他回答
我得到了一个文本文件最初是通过Mac用户在Windows机器上生成的,需要使用load data命令将它导入到Linux MySQL DB中。
尽管VIM显示了'^M'字符,但上述方法对我的特定问题都不起作用,数据会导入,但总是以某种方式损坏。在经历了很多挫折之后,最终解决方案非常简单。
解决方案: 在同一个文件上执行dos2unix两次就成功了!使用file命令可以显示整个过程中发生的事情。
$ file 'file.txt'
file.txt: ASCII text, with CRLF, CR line terminators
$ dos2unix 'file.txt'
dos2unix: converting file file.txt to UNIX format ...
$ file 'file.txt'
file.txt: ASCII text, with CRLF line terminators
$ dos2unix 'file.txt'
dos2unix: converting file file.txt to UNIX format ...
$ file 'file.txt'
file.txt: ASCII text
最终版本的文件被完美地导入数据库。
假设您的文本文件是- file.txt,然后运行这个命令-
dos2unix file.txt
它将文本文件从dos格式转换为unix格式。
这是唯一对我有效的方法:
: ff + + =
:wq
我发现,由于我的Homebrew Mvim实例被设置为使用filetype=dos,我已经污染了几个星期的文件。在.vimrc....中进行了所需的更改
你可以在vim中使用
:1,$s/^V^M//g
其中^是控制字符。
推荐文章
- 如何生成一个核心转储在Linux上的分段错误?
- 在Python中如何在Linux和Windows中使用“/”(目录分隔符)?
- 使用sh shell比较字符串
- Visual Studio代码-在文件末尾插入换行符
- 使用vimdiff查看所有' git diff '
- 只列出UNIX中的目录
- 禁止在vim中创建交换文件
- NERDTree重载新文件
- 如何限制从grep返回的结果的数量?
- 如何管道列表的文件返回的找到命令到猫查看所有文件
- 以相对于当前目录的路径递归地在Linux CLI中列出文件
- 如何使用xargs复制名称中有空格和引号的文件?
- 在makefile中抑制命令调用的回声?
- 在Vim中,我想返回一个词。w的反义词
- Shell脚本for循环语法