我^M
在vimrc中一直保持性格,这破坏了我的配置。
:digraphs
在vim中键入将显示@LightnessRacesinOrbit链接到的图表。
preg_replace('/[\x01]/', ' ' ,$str);
希望对您有用”。
我^M
在vimrc中一直保持性格,这破坏了我的配置。
:digraphs
在vim中键入将显示@LightnessRacesinOrbit链接到的图表。
preg_replace('/[\x01]/', ' ' ,$str);
希望对您有用”。
Answers:
Unix使用0xA作为换行符。Windows使用两个字符的组合:0xD 0xA。0xD是回车符。^M
恰好是vim显示0xD的方式(0x0D = 13,M是英语字母表中的第13个字母)。
您可以^M
通过运行以下命令删除所有字符:
:%s/^M//g
凡^M
被按住进入Ctrl并输入v之后m,然后释放Ctrl。有时缩写为^V^M
,但是请注意,您必须按照上一句话中的说明输入它,而不是按字面意思输入。
该表达式将用^M
空字符串替换所有出现的(即为空)。我用它来摆脱^M
从Windows复制到Unix(Solaris,Linux,OSX)的文件。
^M
如果文件的行尾不匹配,您将看到该字符。使用Tomasz提供的命令,然后:fileformat={unix|dos|mac}
根据要定位的操作系统进行键入。如果只有几行没有^M
字符,则可能需要:fileformat=dos
。如果要在vim以外的其他编辑器中编辑文件,请确保已将其配置为匹配行尾(Notepad不会这样做,但是任何知名的编辑器(如Notepad ++或TextMate都可以))。
vi
,该命令需要手动输入。只是将其粘贴到vi
正在运行的开放式终端中将导致“未找到模式”错误。
:%s/\r//g
替换文件中的回车符。该^ V ^ M模式不能我有一大堆的^ M字符在文件中找到。
要翻译新行而不是删除它:
:%s/\r/\r/g
\r
搜索部分与替换部分的行为不同。例如,请参阅stackoverflow.com/a/3834303。
:%s/\r//g
我得到了最初由Mac用户在Windows机器上生成的文本文件,需要使用以下文件将其导入Linux MySQL数据库: load data
命令。
尽管VIM显示了'^ M'字符,但以上都不对我的特定问题起作用,但是数据可以导入,但总是以某种方式损坏。最终,解决方案非常简单(经过无奈之后)。
解决方案:在同一文件上执行dos2unix
TWICE可以解决问题!使用该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
文件的最终版本完美地导入了数据库。
您可以使用以下方法在vim中修复此问题
:1,$s/^V^M//g
其中^是控制字符。
^M
。
在我的情况下,这是唯一有效的方法:
:e ++ff=dos
:wq