![我无法在 vim 和 iterm 中替换换行符](https://linux22.com/image/1457247/%E6%88%91%E6%97%A0%E6%B3%95%E5%9C%A8%20vim%20%E5%92%8C%20iterm%20%E4%B8%AD%E6%9B%BF%E6%8D%A2%E6%8D%A2%E8%A1%8C%E7%AC%A6.png)
在 iTerm 中的 Vim 中,我经常遇到与换行符有关的问题。例如,如果我有一个文件包含可怕的 ^M,大多数在线教程都会说要执行替换,我会在文件上使用常规查找和替换,例如:
%s/^M/^J/g
我的问题是我无法输入 ^M - 当我输入 ^V^M (control+V control+M) 时,插入的实际上是 ^J。此替换的结果是“未找到任何结果”。是我做错了什么,还是 VIM 或 iTerm 的配置有误?
一些额外的信息:
/usr/bin/vi
在终端应用程序中也会发生这种情况,set compatible
当- 下面是 hexdump 中的一个示例行,其中显示右方括号后的换行符为十六进制字符 0d,我相信这是 ^M
00000120 3c 2f 6c 6f 63 3e 0d 20 20 3c 2f 75 72 6c 3e 0d |</loc>. </url>.|
答案1
找到罪魁祸首了,看起来是病原体插件vim-sensible
。我只是从 ~/vim/bundle 中删除了病原体插件,然后重新测试,直到它起作用。