
windows OS, VSCode
今天安装了 vim extension 试试。
结果,改了一个文件,git diff 发现,好多^M 奇怪的字符,以前用 vscode 是没有的。应该是 vim 带来的。google/baidu 一下,果然,然后试试搜索到的各种方法,比如:
:%s/^M//s :%s/^M$//s 注:这里的^M,我是通过 Ctrl+Shift+V+M 输入的,不是直接输入^M 两个字符。
结果,提示我
E488: Trailing characters 或者
E486: pattern not found: ^M
E486: pattern not found: ^M$
我只能卸载了插件,把文件直接删除,再 git checkout 下来,用 vscode 直接改,还是有^M 这个字符。 只要这个文件被 vim 曾经改过了,这个^M 就甩不掉了。其它的文件,没有被 vim 修改过的,用 vscode 直接改,就不会有这个问题。
现在怎么办?这个文件改不回去了......
有什么方法么?
1 Vegetable 2020-05-28 17:15:11 +08:00 |
2 chzhx 2020-05-28 17:37:02 +08:00 :%s/^M//g |
4 xiaooloong 2020-05-28 17:41:11 +08:00 :%s/\r//g 应该是 windows 上 \r\n 的换行符中的 \r |
5 DefoliationM 2020-05-28 17:44:04 +08:00 cat [文件] | sed 's/^M//g' > 输出文件 |
6 jworg 2020-05-28 17:50:59 +08:00 via iPhone 我也不知道该怎么吐槽,windows os 。。。,4 楼是对的,具体搜 dos2unix 实现 |
7 chzhx 2020-05-28 17:53:32 +08:00 按住 ctrl,然后依次按 v m |
8 yazoox OP @DefoliationM 你这个^M 在命令行里面怎么输入的。是 shift+6 和 shift+m 么? vim 能够输入这个特殊字符,在命令行里好像输入不了。 |
9 fmumu 2020-05-28 18:15:26 +08:00 via Android dos2unix |
10 airfling 2020-05-28 18:22:05 +08:00 :set -f unix |
11 csl1995 2020-05-28 18:22:35 +08:00 你看下 vscode 是不是设置的 dos 格式(CRLF),改成 unix 格式(LF)即可 获赠用命令 dos2unix |
12 DefoliationM 2020-05-28 18:45:53 +08:00 @yazoox 不是,用 vim 写个脚本就行了,可以直接运行脚本 |
13 wsy2220 2020-05-28 18:47:32 +08:00 unix2dos / dos2unix |
14 12101111 2020-05-28 20:37:22 +08:00 vscode 右下角有一个 LF/CRLF 的按钮,点一下就可以切换 |
15 james122333 2020-05-28 22:38:29 +08:00 vscode 扩充的锅 纯 vim 好的很 CRLF 讨厌的地方就在这 |
16 pcmid 2020-05-28 22:54:13 +08:00 via iPhone 这里的^M 不是两个字符,linux 下是 ctrl+v 再 ctrl+m 打出来的 |
17 zydrsnuo 2020-05-29 09:00:35 +08:00 via Android ^M 是 windiws 换行符,可以用 vim 改成 unix 换行格式。 :set ff=unix |
18 sextant 2020-06-21 18:52:03 +08:00 :%s/\r//g |