我^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